1991 年 2 月 1 日発行(毎月1回1 H 発行)第10卷2号通巻106号昭和58年11月2 .日第三種郵便物認可
圍
オー/エツクス
定価560円
特集1クラフィックの“実験的”手法
特集2 SX-WINDOW ブログラミング
1990年度 GAME OF THE YEAR ノミネート発表
カードゲームスロットポーカー
1331
SHARP
X 68000 SUPER 登場
このたび新たにラインアップされた “ X 68000
SUPER ” は、すでに発売されて L 、る“ SUPER
SCSI インターフェイスを標雄4
装備しています。また、その他のシリーズには
オフ。シ ヨンと して SCSI ボ、ード ( CZ -6 BS 1)
がサポートされ、大容量外部記憶装置を
はじめ、各種 SCSI 装置との接続が"丁能に
なったのは、ご存じのとぉりです。
SCSI 規格とは……
SCSI は1986年に ANSI (米国規格協会)
で規格化された仕様で 、 Small Computer
System Interface の略。小型コンピュータ
X 68000 と大容量メデ f ァ
サウンドクリエーション&コンピュータグラ
フィックス。 X 68000 のオハコともいうべきこの
領域は、感性あふれるューザー(ことって最
も魅力的である反面、表現の繊細さに比例
して必要な外部記憶容量も増大します。サン
プリング、 MIDI 、 レイトレ……。その潜在能
力をフルに引き出すには、大容量メデ3ア
への対応が必須です。たとえば、新発売の
光磁気デ V スク ( CZ -6 M 01) と光磁気デ'ィ
スクカートリッジ ( JY -701 MPA ) なら、デ^ス
ク1枚で65,536色画像にして1,000枚強、
15 . 6 k H z の音声サンプリングデータで約
20時間強もの情報を記憶できます。絵に書
▲ M 0 デ f スクドライブ情報
▲ MO ドライブディレクトリ til 報
▲ MO ディスクのフォーマット
の周辺機器接続のための世界共通の规格
です。大容量外部記憶装置(大容量ハード
ディスク、 CD - ROM 、 DAT など)に加え、登
場が期侍される高速スキャナ、次世比プリ
ンタなどの SCSI 装置を、デイジーチェーン
方式で最大7台まで接続可能。大容量デー
夕の高速転送、および単一のインターフェイ
スでの周辺機器の複数制御が特長です。
癱デイジーチヱーン方式による接続例
SCSIO SCSI 1
( ID 番号 0) ( ID 番号 U
SCSI n -1
(ID 番号 n - l >
y! 終瑞抵
scs
終端抵抗
J
終繡抵抗
大 7 台 i で
SCSI ポード CZ -6 BSI
X 68000 シリーズ
( CZ -604 C /623 C を除く)
コンピュータ本体後面
I 0スロットに装溜
SCSI ボード CZ -6 BS 1_
掠準価格29,800円(税別)
いた餅とされていた「画像データベース」
も、「サンフ。リングシステム」さえも、もう火川レ
ベル。 SCSI の採用が、夢の大容 M メデ f ア
に応えてくれるからです。
X 68000 の先見性
初代 X 68000 は、すでにハードデ f スクイン
ターフェイスを内蔵していたこと。当時まだ
一般的ではなかったハードデ f スクに対し
て先見の発想で臨んで L 、たわけです。今 M
の SCSI 対応も同様、100 MB を超える大容
量メデ f アハンドリングカすスタンダード(こなる n
も、そう遠くはありません。
大容量ハードテ^スクか?
光磁気テ^スクか?それとも .
考えもしなかった新しいデバイスか。新製品
X 68000 SUPER の SCSI インターフェイス
に何を接続するかは、賢明なユーザー諸
兄にお任せする!:して…。このマシンカ ? また新
たな一歩を踏み出したことに異論はないは
ずです。蛇足ながらこの SUPER シリーズに
関し a 、 わせてもらえれば、その1=1から大容量
ハンドリングをお望みの方には SUPER HD
を。未来に夢を託したユーザーは SUPER 、
といったところでしようか。
♦ SCSI 装 IK をご使用の場合は. Human 68 k Ver 2.0 以 I •.でご使用
〈ださい。
* ビジュアルシェル I .か t •,は scsi 装 is はご使肋二な n ませ/し
シャープ X 68000 ノぐノコン教室開催中
•会場:市ヶ谷教室シャープ東京支社ビル
•コース:入門コース•表集計コース•音楽
コース •絵画 コース
* 申込受付電話番号 (03)3260-8365
籲受講料:2.000円(税別)
68買ったら
ド EXE1 :
へ クラブ ^
に人ろう/
本体同梱の人会申込ハガキを送るだけで、無料人会。
@ メリット1 :会 MNo. 人り、オリジナル 会員証電卓が もらえる0
©メリット 2 :矜柿フェアこ 1#诗,イベントご案内等、数々の特典アリ。
@ メリット3 : l()m FJ スタート/ X68000 の活用惝報が手に入る
「EXE おみこし活動 」に参加できる.グ
ステップアップサービス(有料)
「おみこしかつぎ人」 制度も新設
EXE おみこし活動のお問い合わせは、
X 68000 t:XE クラブ「おみこし活则隊 _ i まで
0(06)886-0354
■ ——詳細は X 68000 販売店店頭で'—
. おみこし Press をご駑下さい。
敢えて X 68000 の大容量メデ<ア対応を
塞証す i
意味。
カラー画像ファイル、サンプリングファイルへ0
X 680 Q 0 のクリエイテイブユースに待望の大容量ファイル0
書き換え可能な光磁気ディスク、登場。
光磁気ディスクユニット
CZ -6 M 01 •••標準価格450,000円(税別)
光磁気デイスクカートリッジ
JY -701 MPA …標準価格30,000円(税別)
写真の X 68000 とディスプレイは別売です。
SX - WINDOW s SCSI インターフ I イス標準装備0
XI B 8000
PERSONAL WORKSTATION
SUPER
XIBBOOO
PERSONAL WORKSTATION
SUPER
本体 + キーボード + マウス•トラックポール
CZ - 6040 TN (チタンブチノク) 標準価格348,000円(税別)
HD タイプ CZ -623 C - TN (チタンブラック)標準価格498,000円(税別)
本体ゥス 参 ••龜
CZ -653 C - BK ( ブラック )• - GY (グレー)標準価侪285,000円 ( 税別)
HD タイプ CZ -663 C - BK (ブラック) 一 GY (グレー)標準価格395,00 0 R (税別)
充実の
デ^スプレイラインアップ
DISPLAY LINE UP
H 5型カラーディスプレイテレビ(ドットビッチ 0.39 mm ) CZ -602 D - BK (ブラック) .- GY (グレー)標準価格99.800円(チルトスタンド同梱.税別)
H 5 型カラーディスプレイテレビ(ドットビッチ0.39_) CZ -605 D - BK (ブラック) .- GY (グレー)標準価格115,000円(スピーカ ー2 個/チルトスタンド同梱.税別)
115型カラーデイスプレイテレビ(ドットビッチ0.31關) CZ -613 D - TN (チタンブラック) .- BK (ブラック) .- GY (グレー)檷準価格135,000円(スピーカー2個/チルトスタント•同梱.税別)
>14型カラーディスプレイ(ドットビッチ 0.31 mm )
► 14型カラーディスプレイ(ドットビッチ 0.31 關)
• 14型カラーディスブレイ(ドットビッチ0.31晒)
• 21型カラーデイスプレイ ( ドットピッチ0.52麵)
CZ -603 D - BK (ブラック) .- GY (グレー)標準価格84.800円(チルトスタンド同梱•税別)
CZ -604 D - BK (ブラック) 一 GY (グレー)標準価格94.800円(スピーカ ー2 個/チルトスタンド同梱.税別)
CZ -606 D - TN (チタンブラック) -- BK (ブラック) -- GY (グレー) 標準価格79.800円(チルトスタンド同描•税別) X 2 S 7
CU -21 HD-BK (ブラック) 檷準価格148,000円(スピーカ ー2 個同插•税別)
※印の商品は在庫僅少です。
X68000
自分流カード
デザインコンペ
作品大募集
く応募要領〉籲応募方法/ X 68000 で作成したポストカードサイズのデザインカードを送って下さい。 (ソフト
は自由)•作品分類/部門 A :クリスマスカード、ニューイヤーカード部門 B : バレンタインカード、 バース デ
ィカード部門 C : 暑中見舞力ード、サークル•趣味の会お知らせカード•賞/ A * B * C 各部門毎に優秀作品
を選考、オリジナルカレンダーに掲載してプレゼントします。※優秀作品賞:掲載作品応募者に、カレンダ
一及びオリジナル表彰楯を進呈。※参加 賞: 応募者全員に、カレンダーを進呈。 (応募 作品に関わる諸
権利は主催者に帰属するものとして作品の返去:]はいたしません)「詳細は X 68000 販売店 店頭で、-1
•応募期間/ 1990年10月1日 一 1991年2月28日 (消印有効) 1 - チラシ.ポスターを ご览 下さい。」
書お問い合わせは…
株式会《
電子拽器事業本部システム機器営楽部
〒545大阪市阿倍野区長池町22番22号 O (06)62 M 22】 (大代表)
锴子機器事業本部液晶映像システム事業部第2商品企画部
〒162東京都新宿区市谷八幡町8番地〇 (03) 3260-1161 ( 大代表:
特集丨グラフィックの“実験的"手法
H3J) HOLII
スロッ トポ ー カ ー
THE USER'S WORKS
ブール.オブ • レイデイアンス
エメラルドドラゴン
/J/i/aY
CON.
c
0 N
T
• 特集 1
30
グラフィックの“実験的”手法
33
初心者のためのグラフィックあれこれ
CG の基礎
丹明彦
36
CANVAS PRO-68K
ドロー系グラフィックツールの魅力
丹明彦
42
ZsTRIPHONY DIGITAL CRAFT データ集
ポリゴンデータ 「3 D 倶楽部」
丹明彦
43
解説レポート
Z’sSTAFF 支援ツール Z ’ s-EX
丹明彦
50
レイトレーシングにおいて半影を生成する
HASH . X
一圆亨
56
製品試用レポート
hine Scanner - XB 8
高 橋哲史
•特集 E
99
SX-WINDOW プログラミング
100
ウィンドウプログラミングへの道 (E)
C 言語によるプログラミング
村田敏幸
106
コラム目玉を小さくするプログラム!?
泉大介
107
c 言語で使5グラフマネージャの基礎
GRAPHMAN を使ってみよう
泉大介
116
SX し IFE Part II
ポップアップメニューの追加
中森 章
120
コラム 「 SX エンターテイメントキット」計画
荻窪圭
•カラー紹介
25
THE USER'S WORKS
ガイアの牙
26
THE SOFTOUCH SPECIAL
1990年度 GAME OF THE YEA 闩 ノミネート作品発表
•シリーズ全機種共通システム
137
THE SENTINEL
138
ダイスゲーム KISMET
榊卓也
<スタッフ〉
•編集長/前田徹•副編集長/植木章夫•編集/岡崎栄子浅井研二參協力/有田隆也中森章
後藤貴行林一樹荻窪圭岡本浩一郎毛内俊行吉田賢司影山裕昭相馬英智古村聡村田
敏幸丹明彦 E 沢和彦長沢淳博宮 A 靖金子俊一浦川博之山田純二•カメラ/杉山和美
•イラスト/永沢しげる山田晴久小栗由香參アートディレクター/島村勝頼•レイアウト/元木昌子
AD GREEN #校正/グループごじら
Fine Scanner-X68
表紙絵:須藤
ENTS
•THE SOFTOUCH
81
SOFTWARE INFORMATION
話題のソフトウェア
84
86
昍
90
92
GAME REVIEW
栄冠は君に
KLAX
ダイナマイト•デューク
エメラルドドラゴン
プール•オブ • レイデイアンス
彩山裕昭
山田純二
西川善司
古村聡
亀 田雅彦
94
AFTER REVIEW
ラグーン
読みもの
153
X - OVE 闩 NIGHT 第 9 話
街の空気
高橋秀己
154
第45回知能機械概論——お茶目な計算機たち——
感涙もののマシン語プログラム
有田隆也
156
猫とコンピュータ第56回
楽しめる RPG ギフト
高沢恭子
• 連載 / 紹介 / 講座 / ブ□グラム
58
シミュレーションプログラミング入門第3回
シミュレーションは未来をひらく
華門真人
64
よろこそここへ C 言語[第 4 回]
配列って何だろう(その n
中森 章
69
X 68000 マシン語プログラミング Chapter 14h
ソーティングプログラム(前編)
村田敏幸
77
OhIX LIVE in ,91
Misty Blue よりオープニングテーマ曲 (XB 800 0)
スプーンおばさんよりリンゴの森の子猫たち (XI /turbo)
立川正之
加藤隆
9B
大人のための X 68000 第5回
FIXER ver.4.D
荻窪圭
121
X 68000 CA 闩 DDR V 用カードゲーム
スロットポーカー
羽生純也
124
Xlturbo 用ディスク管理プログラム INTEGRAL XI
バグレポートとファイル関数
亀 田雅彦
130
マシン語カクテル in Z 80 *s Bar 第18回
乱数は世界を救うか
西川善司
143
八ードウェアエ作入門〈日〉
センサー回路その2
三沢和彦
146
(で)のショートブロば一ていその17
行け行けユーティリティ
古村聡
愛読者プレゼント……152
ベンギン情報コーナー……158
FILES OhIX ……160
OhIX 質問箱……162
STUDIO X ……164
編集室から /DRIVE ON / ごめんなさいのコーナー / SHIFT BREAK / microOdyssey …
…168
1991
UNIX(iAT&T BELL LABORATORIES の OS 名です。
Mach はカーネギーメロン大字の 0S 名です。
CP/M, P-CPM, CP/Mplus. CP/M-86. CP/M-68K, CP/M-
8000, DR-DOS は DIGITAL RESEARCH
OS/2 は IBM
MS-DOS, MS-OS/2, XENIX, MACRO80. MS C は MICRO
SOFT
MSX-DOS はアスキー
OS-9. OS-9/68000, OS: 900 0, MW C は MICROWARE
UCSD p-system はカリフォルニア大字理事会
WordStar, WordMaster は WORDSTAR International
TURBO PASCAL, TURBO C. SIDEKICK は BOLAND INTER
NATIONAL
LSI C は LSI JAPAN
HuBASIC はハドソンソフト
の商標です。その他,プ□グラム名, CPU は一般に各
メーカーの登 i 幸商標です。本文中では“ TM ", " R "マー
クは明記していません。
本1$に揭載されたプ〇グラムの著作播はプ D グラム
作成者に保留されています。著作権上. PDS と明記さ
れた6の以外,個人で使用するほかの無断複製は禁
じられています。
■広告目次
アイテム . 24
アイビット電子 . 180.181
アクセス . 184
AVC フタバ電機 . 176
エ厶 エーシー ハミングバードソフト|〇
才ーェーランド . 20
キャスト . 9
計測技研 . 178.179
エ画堂スタジオ . II
サイバー . 183(上)
J&P . 表3
システムサコム . 12-13
シャープ . 表2•表4小4-8
駿河台電算専門学校 . 183 (下)
ソフトクリエイト . 182
九十九電機 . 21
デンキヤ . 177
日本コンピュータシステム . 14.15
パソコンプラザオクト . 18.19
P&A .16-17
ビクター 音楽産業 . 23
ブルー スカイ . 175
満開製作所 . 174
ワールドインアオヤマ . 22
SHARP
システムパフオーマンスを実証する多彩なペリフェラル。
ディスプレイ関連
アートツール
プリンタ
カラ-ディスプレイテレビ
カラーディスプレイ
画像入力
熱転写カラープリンタ
Q ■够忌墨
赖态?踅士弓一•:®茔プ I 丨 ゞ 々
15型カラーディスプレイテレビ
CZ -602 D-BK
★ CZ -602 D-GY
標準価格99,800円(税別)
(チルトスタンド同梱)
14型カラーデイスブレイ
CZ -606 D - TN - BK-GY
標準価格79,800円(税別)
(チルトスタンド同梱)
15型カラーデ< スプレイテレビ
CZ-605D- BK--GY
標準価格115,000円(税別〉
(スピーカー2個•チルトスタンド同梱)
14 型カラーディスプレイ
CZ -604 D - BK-GY
摞準価格94,800円(税別)
(スピーカー2個.チルトスタンド同描)
■> T — か
15型カラーデイスブレイテレビ
CZ-613D-TN.-BK.-GY
標準価格135,000円(税別)
(スピーカー2個.チルトスタンド同梱)
21型カラーディスプレイ
CU-21HD
標準価格148,000円(税別)
(スピーカ ー2 i 固同梱)
チューナー
CRT フィルター
1 :
高性能 CRT フィルター
BF-68PRO
標準価格19,800円(税別)
(14/15 型用)
RGB システムチューナー
CZ-6TU-BK-GY
摞準価格33,100円(税別)
(リモコン付')
カラーイメージスキヤナ* 1
CZ-8NS1
摞準価格188,000円(税別)
スキャナ用パラレルポード
CZ-6BN1
標準価格29,800円(税別)
映像入力
カラーイメージユニット • 2
CZ -6 VT 1 -BK
CZ -6 VT 1
標準価格69,800円(税別)
映像出力
0
m
ビデオポード*
CZ -6 BV 1
標準価格21,000円 (税別)
48ドット
熱転写カラー漢字プリンタ
★ CZ -8 PC 4
CZ -8 PC 4 -GY
摞準価格99,800円(税別)
(信号ケーブル同桶)
24 ビン
カラー漢字プリンタ (80 析)
CZ -8 PG 1
If 準 価格130,000円(税別)
(信号ケーブル同梱)
48 ドット
熱転写カラー漢字プリンタ
CZ-8PC5-BK
2月発売予定
24ビン
カラー漢字プリンタ(136桁)
CZ -8 PG 2
擇準価格160,000円(税別)
(信号ケーブル同梱)
カラー ビデオプリンタ
^~ Lj
ドットプリンタ
カラービデオブリンタ
★CZ-6PV1
標準価格198,000円(税別)
(信号ケーブル同梱)
カラーイメージジェット
24ビン漢字プリンタ (136 析)
CZ-8PK10
摞準価格97,800円(税別)
(信号ケーブル同梱)
JT 呵卯 S
カラーイメージジェット+‘1
10735X
標準価格248,000円(税別)
(信号ケーブル別売)
光磁気ディスクユニット”
(594 MB )
CZ-6M01
楝準価格450,000円(税別)
(SCSI ケーブル同梱)
»光磁気ディスクカートリッジ
は別売です n 別売の JY -701
MPA 棵準価格30.000円
(税別)をご使用ください
ハードディスク
ハードテ V スクユこット (20 MB )
CZ-620H
樺準価格178.000円(税別
、ノノ
增設用ハードデ< スク
ドライブ (40 MB )
( CZ -602 C /603 C /652 C -
653 C 内蔵用)
CZ-64H*
摞準価格120,000円(税別)
(取付費別)
增設用ハードディスク
ドライブ (80 MB )( CZ *604 C 内 用
CZ-68H*
標準価格160,000円(税別)
糸取付に関してはシャープ
お客様ご相談窓口にてご
相談ください。
*1 ご14■用に際しては、カラーイメージスキャナ 0Z"8NS1 に间梱の RS-232G ケーブルでほするか.より*速のバラレルデータ伝送を行う壜合、別売のスキャナ用バラレルポー KCZ*6 日N1橡单価格29.800円(税別)で接时して <ださい v
*2 CZ-603D 604D.CU-21HD をこ使用の塌合は、 ROB システムチューナー CZ"6TIJ (別売)が必耍です„ m 3 ビデオ出力は15.75 kHz テレビ棵準信号です。また.拡張1'0スロットは2スロット使用します。
*4 別売の m 号ケーブル IO-73CX 撺準価格5.500円(税別)で接統して下さい。 *5 CZ"600C、601C、 602 O、603C、61 10、6120、6彳30、6520、6530、662〇、6630に使用の場合は、別売の3〇51ポード(02モ831)が必要です.(但し、02*623(3は不要
また. X68000 用 OS Human68K ver.2.0 以上にてご使用ください,,(光磁51ディスクカートリッジは別売の JY-701MPA 標準価格30.000円(税別)をご使用ください。) *6 こ•使用に探しては、あらかじめ別売の 1MB 檐投 RAM ボード CZ*6BE 1 懞準価格
ジりーズ用
周辺機器
標準価格は税別です。
カラー デイスプレイ
籲2〗型カラーディスプレイ* 1
CU -21 HD
148.000円
映像•画像入力編集装置
♦カラーイメージスキャナ
CZ -8 NS 1
188,000円
♦カラーイメージボード II
CZ -8 BV 2
39,800円
籲立体映像セット
★ CZ -8 BR 1
29.800円
•バーソナルテロツバ* 2
★ CZ -8 DT 2
44.800円
FM 音源
• ステレオタイプ FM 音源ボード
CZ -8 BS 1
23.800円
スビーカー (2 本1組) 標準装備、ミュー
■ ジック ツール同梱
プリンタ
• 24 ピンカラー漢字プリンタ (80 桁)
CZ -8 PG 1
130.000円
• 2化•ンカラー漢字プリンタ ( 136析)
CZ -8 PG 2
160.000円
• 24 ピン漢字プリンタ (136 桁)
CZ -8 PK 10 97.800円
• 48 ドット熱転写カラー漢字プリンタ
★ CZ -8 PC 4 99.800円
籲48ドット熱転写カラー漢字プリンタ
CZ -8 PC 4 -GY 99.800円
參48ドット熱転写カラ-漢字プリ乃
CZ -8 PC 5 -BK 2月発売予定
籲 カラー ビデオプリンタ
★ CZ -6 PV 1 198.000円
參 カラーイメージジェット
10.735 X 248.000円
ファイル
• ミニフロッピ-ディスクユニット (2 HD .2 D )* 3 ★ CZ -520 F 118.000円
v/^-7/oVik^n
•お問い合わせは…シャープ ㈱ 電子機器事業本部 システム 機器営業部〒 545 大阪市阿倍野区長池町 22 番 22 号 0(06)621-1221 ( 大〇
シャープペリフエラルフアミリー
XI68000
ネットワーク
入力
その他
拡張メモリ
1 MB 增設 RAM ポード
( CZ - MOC 専用)
CZ-6BE1
摞準価格35,000円(税別)
1 MB 增設 RAM ボード
( CZ -601 C /611 C /652 C /
653 C /662 C /663 C 用)
CZ-6BE1B
棵準価格28,000円(税別)
2 MB 增設 RAM ポード + 6
CZ-6BE2
楝準価格79,800円(税別)
4 MB 增設 RAM ポード* 6
CZ-6BE4
標準価格138,000円(税別)
インターフェイス
ユニバーサル I / O ポード
CZ-6BU1
橾革価格39,800円(税別)
, mm'rwa*
|3〇{—
mu-iu.
GP - 旧ボード
CZ-6BG1
標準価格59,800円(税別)
增設用 RS -232 C ポード
(2 チヤンネル)
CZ-6BF1
標準価格49,800円(税別)
0
SCSI ポード“
CZ-6BS1
標準価格29,800円(税別)
(ソフトウェア ( SCSI ユーティリティ)同描)
数値演算プロセッサ
数値演算プロセッサボード
CZ-6BP1
標準価格79,800円(税別)
FAX
FAX ボード
CZ-6BC1
標準価格79,800円(税別)
MIDI
MIDI ボード
CZ-6BM1
標準価格26,800円(税別)
モデム
モデムユニット* 8
CZ-8TM2
棵準価格49,800円(税別)
( RS -232 C ケーブル同梱)
RS -232 C ケーブル
RS -232 C ケーブル
(平行接続型)
CZ-8LM1
標準価格7,200円(税別)
RS -232 C ケーブル
(クロス接続型)
CZ-8LM2
標準価格7,200円(税別)
し AN ボード
LAN ボード
CZ-6BL1
標準価格268,000円(税別)
標準価格298,000円(税別)
(イーサネット/チーパネット両用)
※電源ユニット.ソフトウェア
(ネットワークドライバ Verl.O) 同梱
インテリジェントコント□ーラ
CZ-8NJ2
標準価格23,800円(税別)
マウス•トラック ポール
CZ-8NM3
摞準価格9,800円(税別)
トラックポール
CZ-8NT1
棵準価格13,800円(税別)
マウス
CZ-8NM2A
標準価格6,800円(税別)
ジョイカード
CZ-8NJ1
棵準価格1,700円(税別)
拡張スロット
拡張 I / O ボックス (4 スロット)
(CZ-600C/601C/602C/603C/
511G/612C/613C/623C 用)
CZ-6EB1-BK
CZ-6EB1
棵準価格88,000円(税別)
ス匕一力一
アンプ内蔵
スピーカー システム (2 本1組)
AN-S100
標準価格36,600円(税別)
システムラック
システムラック
(CZ-600C/601C/602G/603C/
6110 612 CV613C/623C 用)
CZ-6SD1
摞準価格44,800円(税別)
35.000円 (税別 •CZ"600G 用)、 CZ 七 BE1B 檬準価格28.000円 (税別 ♦CZ"601C、CZ>6〗〗C、652C、653C、662C、 6630 用) を增肢してください,. *7 02七000、6010、6020、6030、6110、6120、6130に装着の場合、1/0スロット2に装着ください。
CZ^652C.653C、662C、663C に装着の場合は1/0スロット4に装着ください,,また、 CZ>6BG1、6 日1)1、6日し1、6日し2、6日叫などのボードは、接統コネクタとの間係で本ボードとの併用はできませんのでご注意ください,.なお.本ボードは X68000 用 OSHuman
68K ver.2.0 以上にてご使用ください,, *8 モデムユニット CZ^8TM2 に同梱のソフトは X1/X1 ターボシリーズ用です
•ミニフロッピ-ディスクユニット (2 D ) * CZ -502 F 99,800円
• ミニフロッピ-ディスクユニット (2 D . 1ドライブ) CZ -503 F
49,800円
•增設用ミニフロッピ-ディス外ライブ (2 D )* 4 CZ -53 F - BK 19,800円
拡張ボ ー ド•その他
♦モデムユニット (300/1200 ポー)
CZ -8 TM 2
49,800円
• 320 KB 外部メモリ
CZ -8 BE 2
29,800円
• RS -232 C •マウスポード※ 5
CZ -8 BM 2
19,800円
籲フ□ツビー fV スクインターフェイス※6
CZ -8 BF 1
14,800円
鲁 JIS 第1水準漢字 ROM ※フ
CZ -8 BK 2
19,800円
• RS -232 C 用ケーブル(平行接続型)
CZ -8 し M 1
7,200円
• RS -232 C 用ケーブル(ク□ス接続型)
CZ -8 し M 2
7,200円
籲抵張 I/O ボックス
CZ -8 EB 3
33,800円
• RF コン/く一夕※8
AN -58 C
2,980円
參インテリジェントコントローラ
CZ -8 NJ 2
23,800円
參マウス•トラックボール
CZ -8 NM 3
9,800円
•マウス
CZ -8 NM 2 A
6,800円
• トラックホール
CZ -8 NT 1
13,800円
參ジョイカード
CZ -8 NJ 1
1,700円
翁チルトスタンド
CZ -6 ST 1- E-B
5,800円
•高'性能 CRT フィルター※9
BF -68 PRO
19,800円
•スキャナ用バラレルポード※ 10 CZ -8 BN 1
27,800円
•品番中の-表示は、 B くブラック〉モくオフィスグレー〉を示します。※1
XI ターボ Z シリーズ用 *2 CZ -862 C には接続できません余3 XI 夕
—ポシリーズ用 《4 CZ -830 C 用 XI シリーズ用 *6 CZ -850 C
で CZ -520 F を使用する場合に必要※7 CZ -800 C 、801 C 、802 C 、
803 C 、811 C 、820 C 用 CZ -820 C 、822 C 、830 C 用※9 14/15型用
* 10 GZ -8 NS 1 用•接続等の説明につきまじ T は、周辺機器紡合
カタログをご参照ください。
★印の商品は在庫僅少です。
機器事業本部液晶映像システム事業部第2商品企画部〒162東京都新宿区市谷八幡町8番地 0(03)3260-1161 ( 大代表)
SHARP
八イアビリテイを実証する多彩なソフトウェア。
ドロー編集、 WYSIWYG 印刷、
バージョンアップされた C コン^イラ
こんな C . G •ツールが欲しかった。
と、強力な BAST 0 C チェッカー。
本格的なロゴタイプや POP を簡単に作成できるグラフィックツー
ルです。優先順位が任意に指定できるドローセル、ペイントセル、
テキストセルの3つの仮想セルで、目的にあった自由なグラフイツ
クが駆使できます。また印刷は、画面イメージがそのまま印刷イメ
ージとなる WYSIWYG (What You
See Is What You Get ) を実現 0
A 6/ A 5/ A 4/ A 3./ B 6/ B 5/ B 4/ 葉書
サイズで 8 色カラー印字できます。
く ドロ ー セル〉 ベジエ曲線によって少ないデー
夕量でも複雑な絵を描くことができます。エンべ
ロープ変形を始めとした豊富な編集機能を持っており、拡大、縮小じ r も絵の美しさ
は変わりません。またテキストセルで作成したベクトルフォントデータを自由に変形し、
オリジナルロゴタイプや pop を作成できます。
く ペイントセル〉 ペンやエアーブラシ、ペンキなどを使って、ピクセルで構成されたビ
ットマップ図形を描くことができます。また 、 「NEW PrintShop PRO ^ Kj や 「 X - BASIQj 、
r Z's STAFF PRO ~68 K 」 のデータ取り込みやイメージスキャナによる取り込みをサ
ポートしています。
く テキストセル〉 通常の文字入力機能に加え、ベースライン変形などの多彩な編
集機能によって自由に文字の加工ができます。また英数文字のベクトルフォントを標
準装備。さらに 「 Z's STAFF PRO -68 K Ver 2.0」、 「書体倶楽部」の日本語べクト
ルフォントが利用可能。また、内蔵の漢字 ROM フォントも自動的にベクトルフォントデ
一夕に変換しますので、簡単に日本語ロゴタイプを作成することができ rr 。
* r Z's STAFF PRO 七 8 K 」、 「害体倶楽部」は、 ㈱ Zeit の製品です
※本ソフトの動作には、メインメモリ 2 MB が必要です.
CANVASI
PRO -60 K
CZ -249 GS
標準価格29,800円(税別)
•主とじ C イ固人用のさまざまなジャンル
のデータが収められているドロー グラフ
ィックデータ集です。
海のデータ/動物のデータ/スポーツのデータ/
鳥のデータ/人物のデータ/食物のデータ/昆
虫のデータ
CANVAS ESE3
ド CH 7 ラフィックライフラリ V 0 L .1
CZ -255 GS 標準価格8,800円(税別)
參主としてビジネス用のさまざまなジャ
ンルのデータが収められている ドロー
グラフィックデータ集です。
0 A 関係のデータ/飾りのデータ/コンピュータ
関係のデータ/ POP のデータ/国旗のデータ/
字体のデータ/地図のデータ/乗り物のデータ
CANVAS EM
ドロ-クラフィックライフラリ V 0 L .2
CZ -256 GS 標準価格8,800円(税別)
ソースコードデバッガをはじめ、各種開発ッールを
強化0バージョンアップされた(デコンパイラ。
〇のソースレベルでデバッグできる「ソースコードデバッガ」を搭載し
たほか、各種開発ッールを強化した総合開発ッールです。また、ライ
ブラリは Human68k ver2.0 の披張 DOS コールもサボートしている
など、より X68000 のハードウエアを活かせる豊富なライブラリ (830 種
以上)となっています。 C 言語の標準である ANSI 規格準拠をさらに
強化。「プログラム保守 ユーティリティ (MAKE) j や「ライブラリアン」
など各種ッールを追加しました。その他 「BASIC -〇コンパータ」、「ア
センブラ」、「リンカ」、「デバッガ」、
「ソースコードデバッガ」、 「アー カイ
ノく 」、「コンバータ」、 などの ツール
が装備されています:^
*C compiler PRO -68 K ( GZ -211 LS ) を既に
お持ちの方は、登録カードをもとに有償バー
ジョンアップを行います„
※本ソフトの動作にはメインメモリ 2 MB が必要
です0
^mniGRi
=ver2.0=
PRO-60K
CZ -245 LS
標準価格44,800円(税別)
トラブルエラーの悩み解消!
「 XBAStoC 」 の強カツールの登場です 0
X-BASIC プログラムのコンパイル時、発見しづらいトラブルエラーに
悩まされていたプログラムの問題点をひとつひとつ指摘。エラーとな
る直接原因だけでなく、注意項目も指摘します。これにより、 X-BASIC
では実行できたのにコンパイルするとエラーが発生する、といったプ
ログラムの修正が簡単にできます。
參指摘したトラブルの結果を、画面やプリ
ンタなどの外部デバイスに簡単に出力で
きます,•エラーラインとエラーレポート、2つ
のエラーファイルを自動的に生成。春グラ
フィカルな画面による簡単操作。*コマン
ドラインからダイレクトに操作を指定。バッ
チファイルに組み込むなどの修正作業の
自動化が可能。 • GP- 旧ボード (CZ 七 BG
1) とユニバーサル I/O ポード ( GZ-6 日 U1)
付属の拡張外部関数もコンパイル可能,
* X - BASIC プログラムをコンパイルするためには、別売の 「G compiler PRO -68 Kj ( CZ -21 1
LS ) または 「C compiler PRO -68 K ver 2.0 j ( GZ -245 LS ) が必要です。
XBAStoC CHECKER
CZ -260 LS 標準価格9,800円(税別)
PRO-60K
一^^;");黍 : 1
__ -^^^^ ^^ _ I
淡 fr-y 。 株 it 会 《 •お問い合わせは….シャープ ㈱ 電子機器事業本部液晶映像システム事業部第 2 商品企画部〒162東京都新宿区市谷八幡町8番地 0(03)3260-1161 (大代表) へ..
施、、
ダ
お望みのワークベンチへ。
Hyperword
■ CZ -251 BS 標単価格39.800円(税別)
CYBERNOTE
■ CZ -243 BS 播準価格19.800円(税別)
Stationery
■ CZ -240 BS 標準価格14.800円(税別)
X 68000 の優れたグラフィック環境を活
用し効率的に文害を作成するための
インテリジェントワープロです。アイデア
プロセッサ櫬能、ハイパーテキスト機能
などをサボート,データの整理やプレゼ
ン テーション ツールなど幅広い用途に
利用できます、
ブライべ一卜なデータやビジネスデータ
を簡単な操作で管理•運営できるパ
ーソ ナルデータベースです c リフィル、
タックシール、ハガキなどへの印字も
0 K „ シャーフ電子手帳とのデータ交
換可能(別売の通信ケーブル CE -300
L が必要)。
他のソフトを起動する前に、この Sta
tioneryPRO -68 K を一度起動するだけ
で、他のソフトを実行中にも「スケジユ
ール/住所録 j など多彩な機能をワン
タッチで使用できます,シャーフ電子
手帳とのデータ送受信も実現.、(別売
の通信ケーブル CE -300 L が必要)
給与計算から明細発行までを、リ
アルイメージ入力により自動的に、
素早く処理することができます。
自由なレイアウト画面で入力でき
るワープロ機能を装備したカード
型リレーショナルデータベース。
入力の手間を軽減するヒストリー
機能を装備した、コマンド型リレー
シヨナルデータベースです.
TOP 財務会計
■ CZ -227 BS 標準価格200.000円(税別)
CARD PR068K 周システム手削フィル集
■ CZ -241 BS 標準価格9,800円(税別)
BUSINESS
■ CZ -212 BS 標準価格68,000円(税別)
会計エキスパートシステムとデー
タベースを搭載し、機能と操作性
を両立させた財務会計ソフト。
CARD PRO-68K 用活用フォ-ム集
■ CZ -242 BS 標準価格9.800円(税別)
スプレッド シート (表計算)、 データ
ベース、グラフ作成機能を一体化
させた統合ビジネスツールです。
NEW PrintShop
■ CZ -221 HS 標準価格19.800円(税別)
オリジナリティあふれるはがき等、
簡単に作成、印刷できるホームプ
ロダクテイピリテイツール。
ックライブラリ V0L.1
■ CZ -235 GS 標準価格8.800円(税別)
クラフィックライフラリ V0L.2
■ CZ -236 GS 標準価格8.800円(税別)
■ CZ -257 CS 摞準価格19.800円(税別)
Communication PRO -68 K のバー
ジョンアップ版です。 MNP モデムへ
の対応で、ハードフロー制御 (CTS
/ RTS ) をサポートじ T います。
※バージョンアップ対応中
SX-WINDOW verl.0
■ CZ -259 SS 播率価格6.800円(税別)
複数の作業を同時に処理できる
疑似マルチタスクや入出力装置の
設定が簡単に行える多機能コント
ロール パネルを搭載した本格ウイ
ンドウシステムです。 I 0 CS コールを
利用したソフトの処理速度を高速
化する iocs . X を付属。
OS-9/X 68000
■ CZ -219 SS 標準価格29.800円 (税別)
マルチタスク機能、リアルタイム機
能を活かした使いやすく機能的な
0 S 環境を提供します。
※〇 S -9 はマイクロウヱア社の登録商摞です.
Human68k ver2.0
■ CZ -244 SS 標準価格9,800円(税別)
システムハ。フォーマンスをさらに高
める処理機能を付加した Human
68 k の 最新バージ ョ ン です。
■ CZ -247 MS 標準価格28.800円(税別)
■ CZ -248 MS 摞準価格8.800円(税別)
Sampling
■ CZ -215 MS 標準価格17.800円(税別)
THE 福袋 V2.0
SOUND
■ CZ -224 LS 標準価格9.980円(税別)
■ CZ -214 MS 標準価格15.800円(税別)
AI-68K Staff USP/OPS PRO-68K
■ CZ -234 LS 標準価格188.000円(税別)
MUSIC
■ CZ -213 MS 標準価格〗8.800円(税別)
シューティングゲーム
ぐンインビー〉
■ CZ -217 AS
標準価格7,800円(税別)
© K 0 NAMI . 1988
シューティングゲーム
く沙羅曼蛇〉
■ CZ -218 AS
標準価格8.800円(税別)
e : K 0 NAMI . 1989
ブロックゲーム
くアルカノイド〉
■ CZ -222 AS
標準価格7.800円(税別)
C ) TAIT 0 C 0 RP . 1987
ドライブ ゲーム
くフルスロットル〉
■ CZ -231 AS
標準価格8.800円(税別)
e > TAIT 0 C 0 RP . 1988
スポーツゲーム
ぐ熱血高校
ドッジボール部〉
■ CZ -232 AS
摞準価格7.800円(税別)
CiTECHNOS JAPAN C 0 RP . 1988
アクションゲーム
くパック マニア〉
■ CZ -233 AS
標準価格7.800円(税別)
C^NAMCO
アクションゲーム
くニュージーランド
ストーリー>
■ CZ -230 AS
摞準価格8.800円(税別)
C TAIT 0 〇 ORP . 1989
スポーツゲーム
く V ’ BA しし〉
■ CZ -246 AS
摞準価格7.900円(税別)
OTEGHN 0 S JAPAN C 0 RP . 1989
ハ*イクレー シング ゲーム
くスーハ•ーハングオン〉
■ CZ -238 AS
標準価格8.800円(税別)
◎ SEGA 1987
くサンダーブレード〉
■ CZ -239 AS
標準価格9.500円(税別)
◎SEGA 1987
アクションゲーム
くダウンタウン熱血物語〉
■ CZ -254 AS
標準価格8.800円(税別)
© TECHNOS JAPAN C 0 RP 1989
アクションゲーム
くサイバリオン〉
■ CZ -229 AS
棵準価格8,800円(税別)
©TAITO CORP . 1988
スポーツゲーム
ぐ熱血高校ドッジポール部
サッカー編〉
■ CZ -262 AS
镙準価格8,800円(税別)
& TECHNOS JAPAN CORP . 1990
1 lV?L
®HAf
X68000EXE クラブ
EXE おみこし活動スタートん
⑯まずは EXE クラブへ⑯
人会無料で3つのメリット/手続きは本体同梱の入会申込ハガキを送るだけ。
メリット1 ► 会員番号入りオリジナル会員証電卓がもらえます。
メリット2►各種フェアご優待•イベント案内等、数々の特典があります。
メリット 3^ X 68000 の活用情報が手に入る 「 EXE おみこし活動」に参加できます。
※「入会申込八ガキをなくしてしまった j という方は、おみこし活動隊までお電話下さい。
® EXE おみこし活動とは7⑱
いわば 「 X 68000 ユーザーの、 X 68000 ユーザに よる、 X 68000 ユーザー
のための」活動です。おみこし PRESS を通じて会員同士情報を交
換し、もっと68を使しヽこなして盛り上がってしまおう/としうワケ(モテ
厶がなくてもできるパソコン通信のようなもの? 1) なので、 X 68000 へ
のラブコール、会員独自のテクニック、活用法(マニアックなもので
なくても他の会員には貴重 /) 等あなたの68自慢をドシドシ聞かせて
ください。会員からのメッセージは「おみこし活動隊」が整理してコミュ
ニケーシヨンべーパー「おみこし PRESSj にバッチリ掲載します。
⑱そして EXE 会員究極の®
「おみこしかつぎ人」を大募集/
^ おみこし活動隊
へのアクセス方法
投稿受付/大阪市淀川区西中島1丁目 9-16 新大阪ストロングビル 2 F
X 68000 EXE クラブ「おみこし活動隊」係
1106-8 的-0354
FA
受付
^06-304-1539
★受付時間¬
-平日/昼2時〜夜 8時
日祝/昼12時〜夜8時
ぎ
します:
•クン‘。ひの4び 4 /
格..
の:
「かつぎ人 J とは、より積極的におみこし活動に参加する人のこと0
EXE 会員は「かつぎ人」になることで、 X 68000 ユーザーとしてますま
す充実、3つのメリットで強力にサボートされます。
メリット1「おみこしかつぎ人の集い」に参加できます0
シャープと EXE 会員の双方向コミュニケーションの場として開設さ
れる X 68000 情報交換会「おみこしかつぎ人の集い」は、シャープの68
スタッフと直に意見交換ができるおいしいチャンス。引年2月より全国
レベルでスタートするこの会に参加すれば、68ユーザーとしてトップ
レベルです。
メリット2「おみこし PRESS 」 定期送付0
お店まで足を運ばなぐ C も「おみこし PRESSj が毎号お手元に届きます。
メリット3》「ソフトウェア•フィールド」直送。
X 68000 最新ソフト • 各種周辺機器が一覧できる「ソフトウェア • フィー
ルド」を半年に〗回お送りします。
おみこしかつき人になるには ……
以下の年会費(おみこしかつぎ代)が必要です。〈個人入会〉3 . 000円/
〈グループ入会 (5 人1組)>2,500円/〗人おみこし活動スタート記念特
別割引期間 (91 年1月末まで)に限り〈個人入会 >2. 000円〈グループ
入会 (5 人1組)>1.50()円/1人。
★詳細は「おみこし活動隊」にお電話ください。
日^^^^^
'しま 為减逾 ね、
麵
へ、令濟
ド
々命 誇
淡
ハべさ
•為參 3
、料4卜、
H 春
外 ’ %條对会打 .
お間い合わ.
せは...
シヤ'
.フ ㈱ 霉子拽器
寧寒本部シ
スァム機器贷嫌加 .
◎応募要項©
応募期間平成3年1/20〜3/20
発 表平成3年5月発売の ASCII * Oh ! X の当社広告紙面
101規定 C - TRACE ユーザーが C - TRACE を使用して作成した CG 静止
画像、アニメーション
募集部門•静止画キャラクター部門#静止画アート部門•静止画産業デ
ザイン部門•アニメーション部門
応募方法キャストまで応募要項を請求後、静止画 CG 画像はフロッピー
ディスク、アニメーションはビデオテープ ( VHS 、 ベータ、8
mm のい ずれか)で応募
賞 ■グランプリ、準グランプリ、金貧、銀貧、銅貧(各1名)、 ■
ステゴちゃん貧 (3 名)、■メーカー特別貧
賞 品■グランプリ、準グランプリ、金賞、銀貧、銅貧の順に以下の
C-TRACE98 EXTENDER
価格¥128.000(税別)
審査員
(敬■各)
賞品の中から1つを選択——海外旅行クーポン、トランスビ
ュータ、 フレームバッファ、 キャスト商品券 (10 万円券、7万円
券、3万円券)■ステゴちゃん賞-ステゴちゃんぬいぐるみ
■ メーカー特別赏—— SONY 賞〈データディスクマン〉、アイ •
オー•データ機器賞 <EMS メモリボード (2 M )>、 SHARP 賞くコ
プロセッサボード〉、 ASCII 賞〈月刊アスキー1年間無料購読)
※応募者全員にもれなくキャストオリジナルポストカードをプレゼント
ASCII - Oh ! X • Oh ! PC : 各編集部、 cg キッチンまざぁぐぅす代表長谷川一
光、 C-TRACE ユーザークラブ会*/ J 、 石光、東京工学院芸術専門学校講師塩
千子、超人(超能力者•平成 2 年 II / 27 フジ TV 出演)玉手峰人、ィラストレ-夕-伊川
英雄' 各協賛会社
ソニ-コンピュ-タシステム株式会社、株式会社アイ•才-.デ-夕機器、シャ-プ株式会社、月刊アスキ-編集部
民
1670 万色表示。
圈
超高速。
1
メタ ボール 対応。
フルカラ-フレ-ムバッファ4
価格¥69,800(税込)
參 PC - 9800シリーズ、 PC - 286,386シ
リーズ•メインメモリとして ir 3 ycl 6 M
使用可能 ^EM S によるメモリ抵張の
ようにスピードを犧性にしません#30
%の高速化(当社 C-TRACE Ver .3.0
比) • Ver .3.0 からのステップアツプ受
付中くソフトウェア〉
• PC -9800 シリーズ、 P 0286, 386シ
リーズ#1670万色同時表示#フレーム
バッファ制御のためのサンプルソース
付き參 RAM ディスクドライバ付き參
ズーム、スクロール&パン機能をハー
ドウ エアでサポート•フレームバッフ
ア+ユーテイリテイデイスタ (2 枚)
C-TRACE TP Ver.3.0,
価格¥298,000(税込)
• PC -9800 シリ ーズ、 PC -286, 386シ
リ ーズ、 X 68000 シリーズ •ノ いノ コン
でレイトレーシングをワークステーシ
ョン並みのスピードで実行可能•並列
处理によりスピードアップも可能•卜
ランスピュータボード+ C-TR A CE
Ver .3.0 のセット
★の製品は店頭販売いたし
ておりません。直接当社ま
で、お申し込みください。
C-TRACE + ^
価格¥198,000 (税別)1
• PC - 9800シリーズ、 PC - 286,386シ
リーズ、 X 68000 シリーズ # C-TRACE
シリー ズ社位の スペック參メタボー
ル^応參スポット光泥1>す応參ぴチヤン
ネル対応により商度な合成が可能參ス
コープ機能対応により部分的にの
再計^力呵能 # DOS ェクステンタも
対応#差額交換受付中ぐノフトウェア〉
C-TRACE68 Ver.3.0
C-TRACE98 Ver.3.0
C-TRA<
C-TRACE
¥98,000( 说別)
¥98,000( 说別)
¥68,000 別)
¥530,000 (说別 >
ット取扱-1
株式会社キャスト
※電話 *FAX# 号が変わりました。お間違えのないようお願い致します。
.お問い合せ先〒158東京都世田谷区等々力2-卜13 TE し 03-3705-1065 FAX .03-3705-5224
CE TOWNS ¥68, C
CE NEWS Ver.3.0 ¥530, C
-部クレジ.:
Cos
本格ホラー RPG ゴースト八ンターシリーズ#1
ラプラスの魔
原作/安田均音楽/小坂明子
標準価格8,700円
『ラプラスの 魔』 (ゴーストハンター I )は、ぼくにとって最初に取り組んだ
コンピュータ•ゲームということから非常に愛着がある0『ロードス島戦記』
のコンピュータ•ゲームも、ある意味でここから派生した
といってもいいだろう。かなり手ごわいけれども、解け
たときの満足感は格別のはずだ0コンピコ
ラー RPG はいまだ海外でも、それほど目だったものは
現われていない。こうした分野が好きな人には“お薦
め”だと思う。では、そう遠くない時期に“ゴ
ンタ ー r でお会いしましょう。 安田均
平日の午後I時半から6時の間 U、 お間い合わせに直接お答えします
その他の時聞と土•日•祝日はる24時間 H 裔もてさるテープサーヒ
ユーザーズテレホン》大阪06 (315) 8255 |
♦標準価格に消費税は含まれており i せん。お貢上げの R に別途消費税をお支払い下さい。
♦通信販売ご希 a の方は、住所•氏名 •電話番号 •商品名 •橙 種名•メディアを明記の上、現金書»または郵便搌瞽(大阪 8-303340) にてお申し込み下さい,>
送料は無料ですが、樣準偭格に消費税の3%を加えた金額をお送り下さい,,
▼▲罗 叫 I -'!, h ぃ m
株式会社エ厶•エー•シー八ミンクバードソフト
亍530大阪市北区曾根崎2丁目2番15号
夕のホ
X 的000シリーズに、新登場/
^■〇ァノレツ9ノレト
好評発売中!
mm :遞
SCENARIO SIMULATION GAME
功^
_ 4» < r n jp -- 3
4ノン"
g ^% 〜〜 狂激の銀河 ,
bcnwarzsen
J 11
I r
一 — ^
ヴ アル ツシ ル
ノ飞
wt mi で. .. •断柏の ae 瀰 .
”,,•ぐ“, 11 .断船の麂却 •
^ 一 ►« 防の売却
— -- 一 ,►斬船のスクラッブ
- -^1 •.« •防のスクラップ
120 * 1 , .. _ _,, , • :
^ b パ •—:: * *—r-T ― '^rr^rrrr- -r ^ * •
•/ 1
{判
•. 卜 I
一 」 :-■
断 iiUd 奶遍
5ft 1 M5L< 250
mzm^f H 担 M2 1
第 3 *防 H 坠 50
M-4*KT HSL' 50
释所臞 A A 5L' U
坪 . 所臑 B
今回通柏 M 5 i ! !•:' !
ストーリィ性を持ったドラマティックなゲーム展開
シュヴ P ルツシルトの最大の特徴は、そのゲームシステムにありま
す。单なるウォーシミュレーションではな<、ゲームを進めてい<
にしたがって、次々に新たな目的が現われ、ブレイヤーは知らす知
らすにゲームのシナ U 才に引き込まれてい<といろ、ドラマテ ィツ
クなゲーム展開が魅力の、 SF シミュレーションゲームです。
究極のゲームシナリオ
ゲームのおちしろさはシナ 1 J 7 T で決ま0ます。軍事行動、外交政策
調查 • 研究、 II 金運用、商業取り引きといった載略要累を完璧にシ
ミュレート。シミュレーションゲームの面白さを徹底的に追求した
究極のゲームシナ ij 才です。
5 THD *3 枚組¥12,800(価格には消費税は含まれておりません)
■通信販売(送料無料)のお知らせ
エ画堂スタジオでは通信販売をしてお 1 〇ます。ご希望の方は、品名_機櫃名•住所•氏名•電
話番号を明屺の上、396の消霣税を加算して現金窖留でお申し込み<ださい。
KOCADO
Softworc Products
〒162東京都新宿区市谷台町11
TE し 03-3353-7724
資料謂求券
〇 mx *2 月号
pjsajoo
fT
XT
F F
童富!!
ぞの/
4^—- _
3WAY-
3方向同時のビーム発射がろれしい今日このごろ、
だが、弾の威力がそれほど強くないのが
たまにキズ。
5WAY-
編隊で襲ってくるザコキヤラにはこれ/:/
射程距離の短さと威力の弱さに注意するべ〜し/
アトミックミサイル
弾の威力はピカイチ//だが即射ができないので
あとは君の腕しだい。
アドレナリン全開
シューテインク'
ジェミニウイング
/C
大ヒツト驀進中•グ 源靜菌_
Check point/
株式会社システムサコム
〒130東京都墨田区両国 4-38-16
両国桜井ビル 4 F
ソフトウェア部 03(3635)7609
.人”.‘
□「•カサイ•口ーラーの
スクランブル
ガン シップ 麟象奔 _ //
そして M 斑 i : 待ち受ける-1の敵の21体と/
socom
■■ wmmws
鯽定 /
m 2,000 (5 枚組)
:-•フイ リップ •バ■バラ•ドウ-テイ •卜 ■マス•スウェイジ他 制作/ Tenky
鼸二郎/翊赌/矢晒/鸪籽■雜,賭/翮大翮价痛親材/靛酞醐 NY 刪 18 力/酒并友身
日本ココ亡ユーステ/ _ A 株式会社
〒106東京拙; I〆 :内聆44 16 13第 2 fJA ヒル TEL 03 3486 6314(代み;
わ WI いで,わソノ K ハパ ノ u タシ <4 Hf , ihu )
X68000 SUPER/SUPER-HD/PR 〇 II/PROII-HD
(送料•消費税込)
SUPER セットでお貢い上げの方に•デイスケット10枚♦ジョイカード2ケプレゼント中.グ
® セット: CZ -604 C-TN + CZ -606 D-TN . 定価¥427,800 ►特価 価格は TEL 下さい。
|12 回 28,100
24 回
14,900
36 回
10,300
48 回|
8,100
60 回 6,800 !
©セット: CZ -604 C-TN + CZ -613 D-TN . 定価¥483,000►特価価格は TEL 下さい
12 回 31,800 24 回! 16,800 36 回 I 11,700」48 回「 9,100 IW 回 7,700
SUPER-HD セットでお買い上げの方に•デイスケット10枚•ジョイカード2ケプレゼント中.ヴ
みセット: CZ -623 C-TN + CZ -606 D-TN . 定価¥577,800 ►特価 価格は TEL 下さい
12 回 37,900
24 回 20,000
36 回
13,900
48 回
10,900
60 回
9,100
g セット: CZ -623 C - TN + CZ -613 D-TN . 定価¥633,000 ►特価 価格は TEL 下さい。
112 回 41,600
24 回 22,000
36 回
15,300
48 回
11,900
60 回
10,000
PROII
A セット: CZ -653 C + CZ -606 D . 定価 ¥364.800 ►特価 価格は TEL 下さい,
12回; 22,600 24回!11,900 36回! 8.300扣回 i 6,500 回 i= 5,400
プレゼント中•グ
セットでお買い上げの方に
•ディスケット10枚1
♦ジョイカード2ケ J
◎電話にて、ドンドンお問合せ下さい//
クレジット表には、出せないほどの価格です。
メーカーさん、ご免なさい。
ユーザーの方には大勧迎されそうです。
今がチャンスです、ハイ。
セットでお頁い上げの方に
籲デイスケット10枚1
♦ジョイカード2ケ}
プレゼント中.グ
B セット: CZ -653 C + CZ -605 D -
•定価¥400,000 ►特価 価格は TEL 下さい
12回 1 12.806 |24回13.000 136019,000 148017,100 ! 60回 | 5.900
C セット
P セット
.產セット
A セット
: CZ -653 C + CZ -604 D -
: CZ -653 C + CZ -613 D
: C 2-653 C + CU -21 HD -
: CZ -663 C + CZ -606 D •
••定価 ¥798.000 ►特価
••定価¥420.000 ►特価
••定価¥433,000 ►特価
••定価 ¥474.800 ►特価
価格 UTEL 下さい:
価格 UTEL 下さい,
価格は TE し下さいっ
価格は TEL 下さい:
PROII-HD [ 12回! 30,800 24回:16,300 ; 36回11,300 48回; 8,800 i 60回: 7,400
セットでお買い上げの方に
•ディスケット10枚1
鲁ジョイカード2ケ f
プレゼント中"
日セット: CZ -663 C + CZ -605 D
••定価 ¥510.000 ►特価 価格は TEL 下さい
12回 132,500 24回 I 17,100」36 回 n ,900』48 回丨 9,300 160 回 1 7,800
〇:セット
D セット
£セット
: CZ -663 C + CZ -604 D "
: CZ -663 C + CZ -613 D -
: CZ -663 C + CU -21 HD
••定価 ¥489.800 ►特価
••定価¥530,000 ►特価
••定価 ¥543.000 ►特価
価格は TEL 下さい。
価格は TEL 下さい:
価格は TEL 下さい。
X 68000 シリ
台数限定 ■ 送料、消費税込み
〜 PSA スペシャルセツト=限定誌上販売//
EXPERTII
みセット: P & A 厳選セット
■ CZ-603C
(本体価格 ¥338,000)
㊉
■CZ-606D
(モニター定価 ¥79,800)
►S 鉍 ¥304,000
® セット
■ CZ-603C+CZ-604D
定価■細.. •►籠 ¥309,000
©•fe ット:
■CZ-603C+DZ-605D
定価■册 •• ►特偭 ¥322,000
©セット:
■CZ-603C+CZ-613D
定_,〇〇〇… ►細 ¥342,000
©• b ット:
■CZ-603C+CU-21HD
定価 ¥486朋 .•.►特価 ¥347,000
※セットでお買い上げの方に、春ディスケット10枚、•ジョイカ-ド2個プレゼント中//
EXPERT-HD
⑬セット:
■ CZ -612 C + CZ -604 D
定価 ¥560.800… ►特価 ¥340 j 000
© t ット:
■CZ-612C+CZ-605D
定価 ¥58 _">g 湘 ¥35_)
©•fe ット:
■CZ-612C4-CZ-613D
Si¥60iooo->@8i¥3? 2,000
© t ッド
■CZ-612C+CU-21HD
定価¥〇〇 ...►起 特価 ¥386,000
④セット : P & A 厳選セット
■CZ-612C ( ブラック)
(本体価格¥466,000)
㊉
■CZ 别 6D ( ブラック)
(モニター定価 ¥79,800)
►=¥335,000
■NEC= モデム ( 定価 ¥44,800)
®C0MSTARZ 2424/5
•2400/ 1200 bps 全二璽
_ P 5 クラス
インターフェース付
P&A 起特価
¥28,500
(送料•消费税込み ¥30,385)
I ALL in Note
フリートップ
パーソナルコンビ ユー タ
0AX-286N-H2
(定価 ¥398,000)
P&A 超特価
価格は TE じ F さい。
目//
(平成3年2月末はもちろん)
:一括払い
手数料(金利)無料
ご利用下さい。
プリンター (送料 ¥ 1 . 000 )
_ CZ -8 PK 8( 定価 ¥152.000)
• 24 ヒン;興字ブリンタ ヒ交ハ
•娜 圆¢¥49,800
(送料•消費税込 v
2 , 324 )
超低金利クレジット 0
© V 秋葉原
でおなじみ (
CYBER STICK
CZ -8 NJ 2
(定価 ¥23, 800)
起特価.グ
¥18,500 (送料•消费税込み ¥19.570)
X68000 シリ-ズ専用 特価¥16,480
M 旧 I インターフェースボード
SX -68 M (サコム)
(純生コンパチ)定価 ¥19,800
送料づ肖賫税込みノ
X 6 昍 0 D 用メモリーボード ( I / O . DATA ) (送料糾〇〇)
0 PIO -6 BE 1 -A w ^ 0
^fiSV 25.000 ¥ 189000
(送科•消贄税込¥19.055〉
© PIQ -6 BE 2-2 M ハハハ
定偭 ¥5。。。。 ¥36,000
38.11 0) 7
③ PIQ -6 BE 4-4 M
定 88.000 ¥63,000
(送科•消贄税込 ¥66.744)
•お近くの方は
• 本体単品で i
• ビジネスソフト :
ジョイスティック 送料 ¥500
• X -1 PRO
定価 ¥9,500 ►特価 ¥7,800
• ASCII STICK
定価 ¥6,800 ►特価 ¥5.500
ド03<£超低金利クレジットをご利用ください\
•本広告の掲載の商品の価格については、消寶税は含まれておりません。•営業時間=平日 AM 10:00 へ PM 7:00、 日祭 AMI 0:00〜 PM 6: 00
Z,s STAFF PF
Z,s TRIPHONY
テラッッォ(ノ
KAMIKAZE
C&. Profession
Final Ver3.2 (:
C-comoiler PR'
CARD PR068 卜
C compiler PR(
OS-9/X 68000 C
AI-68K CZ234L
THE 福袋 V2.0
SOUND PR06(
MUSIC PR068
Sampling PR06
MUSIC-studio I
MUSIC-PR068
New-print Shop
Communication
Communication
C-TRACE68
サイクロン EXPF
G68K Ver2 PR
THE FILE
G ツール(ザイン
た一みのる 2 (Sf
マジックハ•レット
Hyper word C2
_ ゲームソフト 2
V
PR
(g)CZ-8NSI
(©CZ-6VTI
©CZ-6TU .
◎BF-68PR
(g)CZ-6BEI
®CZ-6BEh
◎CZ-6BE2
❹ CZ-6BE4
① CZ-6BFI
Q)CZ-6BPI
(g)CZ-6BMI
(OCZ-6EBI-
®AN-S100-
㉔ CZ-6SDI-
◎CZ-8PC3
0CZ-8PC4
◎ CZ-8PG1
(S)CZ-8PG ;
⑤ CZ-8PK1
① CZ-6PVI
◎ IO-735X
©CZ-8BSI
V^PIO-6BE1
……定価 ¥25,1
■まずはお期
03-651-1
• 下取りの J
• 貢取りの j
❿近郊の方
《便う
•月々、
»支払 I
參定休日/毎 i
1068K Ver2.0( ツァイト) .
デジタ ^( レクラフト(,ンァイト) .
メグパード〉 .
• ムシング • グッド) .
al Pack ( マイクロウェアジャパン )"
c — エスヒ •一) .
068K Ver.2 CZ-245L.
く CZ226BS .
)68KCZ2MLS .
JZ2I9SS .
_S..
| CZ224 し S .
JK .
K CZ2I3MS.
>8K CZ2I5MS .
=»R068K 237MS .
KCMIDO 247MS .
i 22IHS.
223CS .
Ver.2 CZ-257CS .
er.3.0( キャスト) .
把 SSa68.
0 .
OFESSOR ( ロゴシステム〉 .
ソフト) .
( ミュージカルプラン) .
-25 IBS.
0%OFF OK. グ(一部ソフト除く)
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
- 定価 1 ! (
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
… 定価 ¥
•• 定価 ¥
• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
•• 定価 V
•• 定価 ¥
•• 定価 ¥
•• 定価 ¥
58,000 岭 特価 ¥39,500
39,800 岭 特価 ¥27,500
19,400 •♦ 特価 友丄&»«^〇
68,800 蛉 特価 ¥45,500
58,000 岭 特価 ¥43,000
38,000 岭特 mriYnn l 4rrff
44,800 岭 特価 ¥34,500
29,800 岭 特価 TEL 下さい。
39,800 岭 特価 ¥28,500
29.800 岭 特価 ¥20,700
188,000 岭 特価 TE し下さい .
9,900 ■►特価 ¥ 7,400
5,800 岭 特価 ¥11,300
5,800 岭 特価 ¥
7,800 峙 特価 ¥
5,800 岭 特価 TE
28, 800 岭 特価 ¥ 20,500
9,800 岭特価 TE
9,800 蛉 特価 ¥
9,800 岭 特価 ¥1
98,000 畤 特価 ¥69,800
98,000 ■► 特価 TEL 下さい
22,000 岭特佩 y 17^00
28,000 岭 riffinyYQiinfr
28, 000 岭 特価 morr
17,800 畤 特価 y 1 1,gQty
19,800 岭 特価 XI HiOOfr
39,800 ♦ 特価 y 3 i lOOTT
r 1 3.300
800 ■►特価 ¥1 2,500
E し下さい。
E し下さい。
9,800
15,500
-A(I/O DATA)
X)0 ►特価 ¥18,000
. 定価 v 188.000 ►特価 ¥145,000
. 定価 ¥ 69.800 ►特価 ¥ 54,000
. 定価 ¥ 33.100 ►特価 ¥
. 定価 ¥19.800 ►特価 ¥
. 定価 ¥ 35.000 ►特価 ¥
. 定価 V 38,000 ►特価 ¥
. 定価 V 79,800 ►特価 ¥
. 定価 ¥ 138. 000 ►特価 ¥107,000
. 定価 ¥ 49,800 ►特価 ¥ 38,200
. 定価 V 79.800 ►特価 ¥
. 定価 V 26.800 ►特価 ¥
. 定価 V 88.000 ►特価 ¥
. 定価 ¥ 36.600 ►特価 ¥
. 定価 ¥ 44.800 ►特価 ¥
. 定価 ¥ 65.800 ^
. 定価 V 99.800 〇〇
. 定価 ¥160, 000 I ヒ L 卜さし。
. 定価 ¥ 97.800 J
. 定価 ¥ 198, 000 ►特価 ¥1 53,000
. 定価 ¥ 248,000 ► 特価 ¥ 190,000
. 定価 V 23,800 ►特価 ¥ 19,000
I (X)PI0-6BE2-2M(l/0 DATA) I ®PI0-6BE4-4M(l/0 DATA)
I ……定価 ¥50.000 ►特価 ¥36,000 丨 ^ . 一 —
25,000
15.500
26.500
28,600
60,000
61,〇00
20,300
67.500
28.500
35,000
アイテム
• HXD -040(40 MB /23 ms )-
參 HXD -042( 增設用) .
アイテック
• ITX -640(40 MB /28 ms ) ••
• ITX -680(80 MB /20 ms ) …
•定価¥彳18,000 ►特価 ¥ 88,000
•定価¥128,000 ►特価 ¥ 95,000
•定価¥158,000 ►特価 ¥ 83,000
•定価¥198,000 ►特価 ¥ 97,000
• CZ -8 PC 3( カラー漢字24ドット熱転写プリンター)
定価 ¥65,800 . 特価 ¥39,800
• CZ -8 PK 8(24 ピン漢字プリンター 136 桁)
定価 ¥ 152,000 . 特価 ¥ 49,800
• CZ -8 PC 4 P & A 特選•グ(カラー ill 字48ドット熱車云写プリンター)
定価 ¥99,800 . 特価 ¥ 57,000
®MD-24FS5( オムロン)
⑧ MD-24FS7( オムロン)
©コムスター2424/4 (NEC).
@ コム スター 2424/5(NEC).
,•定価 ¥ 49,800 ►特価 ¥ 34.800
,•定価 ¥ 64,800 ►特価 ¥ 45,000
•• 定価 ¥ 38,800 ►特価 ¥ 28.000
.•定価 ¥ 44,800 ►特価 ¥ 28,500
B ®3 段
875( H )
X 580( D )
X 610( W )
⑧4段
1320( H )
X 600( D )
X 630( W )
¥9,000 〆 j ¥11,500
©5 段
1280( H )
X 600 ⑼
X 620( W )
‘¥15,000
••定価 ¥88,000 ►特価 ¥63,000
_X 68000 セット .
• X 68000 ACE セット .
參 X68000ACE-HD セット……
• EXPERT セット……
• EXPERT-HD セット
• PRO セット .
► ¥180,000 • X68000PRO-HD セット . ► ¥ 270,000
► ¥200,000 • EXPERTI1 セット ►¥ 250,000
► ¥215,000 • EXPERTII-HD セット >>¥320,000
► ¥230,000 • PRO II セット ►¥ 240,000
► ¥265,000 • PR0I1-HD セット . ►¥31 0,000
► ¥250,000
その場で高価現金買取り•高価下取り OK //
t 話下さい。 ■下取り•買取りでお急ぎの方、直接当社に来店、また
884 FAX :03-651-0141 は、宅急便にてお送り下さい。
典合 . 価格は常に変動じ C いますので査定額をお電括で確認して下さい。
(差額は、 P & A 起低金利クレジットをご利用下さい〇)
«合 . 現品が着き次第、2日以内に買取り金額を連絡し、振込み、又は書留
でお送り致します。
は、 P&A 本店まで、直接お持ち下さい。即金にて、 ¥1,000,000 までお支払い致します。
W な超低金利クレジットをご利用 下さい》
<1,000円から 0 K . グ•ボーナス払い OK (夏冬10回まで OK )
•、回数1回〜84回•お支払いは、8ヶ月先からでも OK //
〔現金一括でお申し込みの方〕
•商品名およびお客様の住所•氏名•電話番号をご記入の上、代金を当社まで、現金
書留でお送りください。(プリンター•フロッピーの場合、本体使用機種名を明記のこと)
〔銀行振込でお申し込みの方〕
•銀行振込ご希望の方は必ずお振込みの前にお電話にてお客様のご住所•お名前.
商品名等をお知らせください。
(電信扱いでお振込み下さい。)
〔クレジットでお申し込みの方〕
•電話にてお申し込みください。クレジット申し込み用紙をお送りいたしますので、ご記入
の上、当社までお送りください。
♦現金特別価格でクレジットが利用できます。残金のみに金利がかかりま
籲1回〜84回払いまで出来ます 3 但し、1回のお支払い額は¥1000円以上。
固水曜日=第3水曜•木曜は連休とさせていただきます(祭日の場合は翌日になります)
♦現金書留及び銀行振込でお申し込みの方は、上記商品の料金に3%加算の上でお申し込み下さい。詳しくは、お電話でお問い合せ下さい。
株 A 会朴ピー•アンド•エー fSo
〒124東京都葛飾区新小岩2丁目1番地19号 日祭: AM 10
a 03-3651-0148 (代)? 3
営業時間
平日: AM 10:00 〜 PM 7:00
日祭: AM 10:00 〜 PM 6:00
X .
- 3651-0141
マイコン
ビデオ
ビデオテープ
アフターサービス 万全
全商品保証付。専門の担当者がお客様の立場で対応します。
初期不良、輪送トラブル etc.
万が一初期不良、輸送トラブルが発生しました際には、即交換させていただきます,
〔振込先〕住友銀行新小岩支店
当 No .263914 ㈱ ピー•アンド•エー
中古パソコンは P & A におまかせ.グ
通信販売お申し込みのご案内
中古パソコン(セットはモニター付)送料¥2,000
ック(送料無料)移動自由(キャスター付 》
ーナー(送料 ¥500)
モデムコーナー(送料¥ 1 , 000 )
, 000 )
プリンター(ケーブル•用紙付)限定5台新品(送料¥
84回払いまで〇にグ
★頭金なし/★即日発送
丄州超特価 1 HI / で ご奉仕ガ
.寄り下さぃ。専門係員が説明ぃたしまも
i で受付します。詳しくは電話にてお問合せ下さぃ 。 r 3I P ^
の20%引き OK / 丁 EL ください。 ■ 】 ■ ― ■し _ し |. 】
X 68000 用ソフトコーナー(送料1ケ〜5ケまで¥500) | X 68000 用ハードディスク(送料 ¥1,000) _
超特価でクレ'ジツトが組める/
パソコンブラザ
■店頭にて、ゲームソフト 25% OFR >/ (税別)、起低金利オクトハッピークレジットをご利用下さいガ
オクトで始まるパソコンワールド-
m rmmmi
•営業時間 AM 11:00〜 9:00/日曜•祭日 P / W 7:00 電話一本で、八イ即納
〒144東京都大田区蒲田 4-6-7 FAvm-q7qn-fi97i
籲定休印
:議纖 ラクラぬ'
0 CT -1 システムインフォメ-
於 I i ^ i, iii (■!' 'にか r ね I )
11回
2.06
3
6 回
4
|〇回
5.5
12回
5.5
15回
8
18回
,〇
g
二
30回
二
16
_ 一
36回
17
48回
22
60回
28
1
►超低金利ハッビークレジット( II "卜姒贪ナシ OK /
► ボーナス M 払 V 、〇 K / ボーナス2卜|払 V 、〇 K . グ
►配述丨 I の衍定 0K /( Jj 令なサホート休制)
► irfjv .,'1 の糾たせ I , u 丨 I /イクドノ|丄ータムシ ステム j
► i .'/ yYi デモンストレーション,九:施中
オクト
セレクテッドシステム
広告掲載商品以外の
製品も取扱っております。
▲
■本体セツド送料無料(注)本体セット以外の周辺機器(プリンター、モデム、 HDD 等)及びソフトの送料は、北海道•九州地区=1ケロ ¥1500、■その他離島地区は、1ケロ ¥2000となります^
※上記料金には、消費税は含まれておりません。消費税が付加されますので、詳しくは、電話でお問合せ下さい。
1
平成3年2月末一括払い OK //
新春恒例お年玉セール実施中。
► 今月のセツトは、超お買徳//電話で交渉すべし//
お好みのセットを
お選び下さい。
送料無料.グ
15型カラーディスプレイ TV
• CZ-604C-TN
定価 ¥348,000
現金特価// E 1 H
お電話下さい。
I SX-WINDOW 搭載。
I 拡張 I/O ポート4スロット装備
* CZ -653 C - BK/GY
定価 ¥285,000
CZ -663 C - BK/GY
定価 ¥395,000
CZ -8 NJ 2 1^|
籲インテリジェントコントローラ
定価 V 23.800
超特価¥18,000
㊇ GZ - 6040 + CZ -605 D ••.•定価合計¥ 463,000 ►オ クト大特価
Z -653 C + CZ -605 D •…定価合計¥ 400,000 ► オクト大特価
36回「¥9,丨00]48回|¥7,10〇160@] ¥5,900
¥24,600
¥ 13,000
CZ - 605 P - GY/BK
定価 ¥115,000
15型カラーディスプレイ TV
( C ' C 2 6630 + GZ -605 D •…定価合計¥ 5丨0,000 ► オクト大特価
12回 ¥ 33,500 24回 V 17,700 36回 V 12,300 48回 ¥9,600 60回 ¥8,100
CZ -613: D - GY/BK
定価 ¥ 135,000
14型カラーデ< スプレー
CU -21 HD
定価 Y 148,000
••••定価合計¥ 483,000 ►オ クト大特価
¥ 16,90〇]36回 I >丨丨,700148回]¥ 9,200 60回 ¥7,700
© GZ -653 G + CZ -6 1 3 D •…定価合計¥ 420,000 ►オ クト大特価
?网 ? ■■
[2 回
$
OZ -663 C + CZ 4 J 3 D …•定価合計¥ 530,000 ►オ クト大特価
❹ OZ -604 G f C 2-606 D ••.•定価合計¥ 427,800 ►オ クト大特価
12回 ¥28,000 24回 V 14,900 36回 ¥ 10,300 48回 ¥8,100 60回 ¥6,800
み 653 C + CZ -606 D •‘••定価合計¥ 364,800 ►オ クト大特価
12回 ¥22,400 24回 ¥11,900 36回 ¥8,300 48回 ¥6,400 60回 ¥5,400
6:060 •,••定価合計¥ 474,800 ►オ クト大特価
■ 12 回 ¥31,200 24回 ¥ 16,500 36回 ¥丨し500 48回 ¥9,000 60回 ¥7,500
eZ«DM^BK/Tfs|)
21型カラーディスプレイ
1D _
q ) GZ -604 G + CU -2! …定価合計¥ 496,000 ►オ クト大特価
. KK ; Z -6!33 C-f G し •..定価合計¥ 433,000 ►オ クト大特価
36回]
C >0 Z -6630 + G | j -2 iHD •••定価合計¥ 543,000 ►オ クト大特価
[2 回〔
]4回[
f 本体セットは、 Cii だけの大特価セ-ル//
f クレジット価格は、消費税込みですヨ。ご利用下さい•グ
クレジットの回数は 1 回〜 60 回、ボーナス併用などありますのでお電話でお問合せ下さい。
NEW
NEW
★下記セットでお買い上げの方にはプレゼント.グ MD -2 HD 10枚 i ジョイカード2個(連射式)、|、シリコンキーボードカバー 4^-^( v 95^
■朗報です。平成3年2月末一括払い OK //:手数料なし。ご利用下さい。■店頭にて、ゲ l ムソフト^5% OFF //
(v 68,80 〇) ►特価 ¥ 5,300
(¥ 98,80 0) ►特価 ¥ 7,500
(¥188,000) ►大 特価
(V 79,80 〇) ►特価 ¥ 60,500
(V 49,80 〇) ►特価 ¥ 38,000
(¥120,000)►大 特価
(v 33,100) ►特価 ¥ 25,000
(V 19,80 Q ) ►特価 ¥15 棚
(¥4 50,00 0) ►大 特価
(¥ 29,80 0) ►特価 ¥22400
(¥298, 000) ►大 特価
特選周辺機器(送料¥1,000)
• SX -68 M MID インターフェースボード
(システムサコム)¥ 19,800 . 特価¥15,000
♦ CZ -6 BV 1 ビデオボード
¥21,000 . 特価 ¥15,700
■増設 RAM ボード =1*0 データ
© PI 0-6 BE 1- A (1 MB )
¥25 # 〇〇〇 . 特価 ¥18,000
② PIO -6 BE 2-2 M (2 MB )
“0,000 . 特価 ¥36,300
③ PIO -6 BE 4-4 M (4 MB )
¥88,000 . 特価 ¥64,000
■ IO -735 X ぼ.ぶ^)
大特価 TEL 下さい
定価¥97,800•… •… 大特価. グ TEL 下さい。
② GZ -8 PGI (24 ピンカラー漢字プリンター 80 折)
定価¥130,000… •… 大特価 ガ TEI ■下さい。
③ CZ -8 PG 2(24 ピンカラ-漢字プリンタ-136析)
定価¥160,000 …•… 大特価// TEL 下さい。
@10-735 X (カラー イメージシエ ッ ト)
定価¥248,000…•… 大特価. グ TEL 下さい。
•CZ-6BEI
旧 M 増設 RAM ポード•…•…
•CZ-6BEIB
麵設麵ポ-ド .
•CZ-6BE2
2 MB 增設 RAM ボード……"
•CZ-6BE4
4 MB 増設 RAM ボード…•…
•CZ-6BFI
增設用 RS *232 C ボード •
•CZ-6BGI
GP •旧ボ-ド .
•CZ-6BMI
MIDI ボード .
•CZ-6BNI
スキャナ用バラレルボ-ド…
•CZ-6BPI
数値演算 プロセッサボード •
•CZ-6B0I
ユニバーサル I / O ボード
•CZ-6EBI/BK
拡張 I / O ボックス .
•CZ-6VTI/BK
カラー イメージ•ユニット••…
••■(¥ 35,00 0) ►特価 ¥ 26,500
•••(¥ 28,00 0) ►特価 ¥ 21,000
.••(¥ 79,80 0) ►特価 ¥ 60,500
…(¥138,000) ►特価 ¥ 104,800
•••(¥ 49,80 0) ►特価 ¥ 38,500
•••(V 59,80 0) ►特価 ¥ 45,000
...(¥ 26,80 0) ►特価 ¥ 20,500
… (¥ 29,80 0) ►特価 ¥ 22,800
-(¥ 79,80 0) ►特価 ¥ 60,500
...(¥ 39,80 0) ►特価 ¥ 30,500
•••(V 88,00 0) ►特価 ¥ 66,800
"• い 69,80 0) ►特価 ¥ 53,000
參 CZ*8NM2A マウス . :.……
• CZ-8NTI マウストラックボール .
• CZ-8NSI カラーイメージスキャナ .
•CZ-6BCI FAX ボード .
•CZ-8TM2 モデムユニット .
•CZ-64H 增設ハードディスク .
•CZ-6TU GY/BK RGB システムチューナ -……
• BF-68PRO 高性能 GRT7 ィルタ - .
•CZ-6MOI 光磁気 ディスクユニット ……•-
參 GZ*6BS SCSI インターフェースポード ••
•CZ-6BL2 LAN ボード .
※掲載の価格は変動しますので、まずは、お電話にてご確認ください。
※上記料金には、消費税は含まれておりません。消費税が付加されますので、詳しくは電話でお問合せ下さい。
※銀行振込、または、現金書留でご注文の際には、あらかじめ電話でご確認の上、お申し;入み下さい
周辺機器コーナー (送料 ¥1,000)
. 000 )
■店頭にて、ゲームソフト 25% OFFT グ(税別)、超低金利ハッピークレジットをご利用ください♦グ
■特に人気のある商品によっては、しばらくお待ち願うことがありますのでご了承下さい。
厳選された製品を、より安〈、より早く、皆様のお手元にガ |
広告掲載商品以外の
製品も取扱っております。
才外厳定 // SUPER-HD スペシャルセット〜 今がチャンス.グ電話で値切ろう(送料無料)
•ザ•ワークステーションと 呼ぶ にふさわしい ※マウス •ト ラックボール 付♦グ
オクト厳定セツト♦グ ディスプレィに
® : GZ -623 C - 1]: : . 定価合計 ¥ 577,800 ►大特価
12 回
¥ 37,800
24’ 回
¥ 20,000
36 回
¥ 13,900
48 回
¥ 10,900
60 回
¥9, 100 |
: GZ -623 C-TN + GZ -613 E)-TN …
. 定価合計 ¥633,000 ►大特価
丨2回
¥41,600
24 回
¥ 22,000
36 回
¥ 15,300
48 回
¥ 12,000
60 回
¥ 10,1001
現金特価/
お電話下 i
上記セットお買い上げの方に、 ① MD -2 HD 10 枚 ③ジョイカード(連射式)
オクトからのプレゼント♦グ ② サンダーブレード (ゲ -ム ¥9,500)④シリコン キ- ボ-ドカバ-(¥2,800)
※起低金利クレジットをご利用下さい。1回〜60回払い、頭金ナシ.グボーナス1回及び2回払い OK です0
X 68 □□□ソフト大セール実施中※ゲームソフトオール 25% off 送料 ¥500
ーナー(送料ヽ
〈クラフィック STAFF PR068K Ver ^.0 くグラフィック〉 參テジ タルクラフト
(シャフト)定価¥58.000 HiiV39,800 定硒¥39,800 . 料®V28,000
68 . 000 --
<C1II> •C&Professionnl Pack く CO ツール》 •CANVAS PR068K
定进 ¥58,000 H 僅 V43,800 800 CZ-249GS ^ttV22»400
C/7I3MS
C^?»4MS
C ふ? IWS
C2/I9SS
CZ - 220 QS
C/ ??4l.s
C2.MIBS
CJ-/40BS
し•.卜
一 E -68
' : .、りへ.-
C 2- M 0 LS
< ハハ
C2-?34LS
C:^ ?S?MS
PROMK ~_
OS-9/XMOOO
DATA PR«-t*K
PRO-68K
THE 礪 P V? 0
■ -
*I _ リフ《ル_
,奴 ifratn MK Ver/.O
MUSIC PRO MKtMlW;
熱転写カラー漢字プリンター
CANVASM3 ークラフぐ/ク UB
〇ークラフイ v ク VOC ?
. . - .
SX WWCX)W v»-f 10
_ AHMK __
_ MUS «^.§ LyP *0^ O 6^
パソコンラック推奨_11
BB.OOO
15. 100
'•00
sa.coo
19.100
Voo-
?MOO
9.100
12,600
21.000
41.000
14,300
•i:aoo '
•W __
31.000 _
"一 M 一 —
19.100
w
'aoo y
V
M .®° . V
ん a.son , ¥
V 7,500
y 7.500
V 29,800
V 11,400
V 15^00
¥ 6,600
¥ 0.000
y 7,
オムロン #MD-I200AIII.
• N / D - I 2 FS .
• N/D-24FP4II.
• N/D-24FN5.
• IVD-24FS4.
• MD-24FS5.
• MD-24FS7.
• MD-24FC5.
• MO-24FP5II.
• MD-24FN4.
• MD-24FJ4
• MD-24FJ5.
#MD-24HS.
• MD-48HS
S5.
• MD -96 FS !
iPV - A 24 Vf
tPV - M 24 VM 5*
• PV - AI 2.
• PV - M 24.
① CZ-8PK10 (24 ピン漢字プリンタ ー 1 3 晰 )
①五段キヤスター付②四段キャスター付③三段キャスター付
5 段キヤスタ-付
キーポードが収納できる
から、手元でマウス操作が
ラクラクできる
播板5段のマ〗レチに
活用できるディスク。
ウーン、こいつはデキル/
1325( H ) X 640( W )
x 700( D )
特価 ¥15,500
4 段抑スタ-付
どんなパソコンにも
フレキシブルに対応/
使い易いデスクです。
1245( H ) X 5 I 4( W )
x 600( D )
特価 ¥11,500
特価 ¥8,800
店頭ゲームソフトオール 25%off/ ビジネスソフト 25 % より特価中
オクトラクラククレジット表
★通價販売お申込みの ご 案内 ★ 〒144東京都大田区蒲田 4-6-7 TEL :03-3730-6271
お屮込みはお姑でお願いします。お客様のく伐所〉く氏名〉ぐ, li 坫裉け〉及びく商品名〉をお知らせドさい。*人金確逖後ただちに齡 1 •をご送付いた u
富士銀行三菱銀行
久ヶ原支店蒲 田 支店
_〇.1824 @ N 0.0278691
株式会社億人(オクト)
銀行振込:お近くの銀行より(電信扱い〉にて
お振込み下さい:
現金書留: 封筒の中に住所•氏名•商品名を
ご記入の上当社までお送り下さい
谷饨のく
B
専用お申込用紙をお送り致します
ので、必要事項をご記入、ご捺印の上
ご返送下さい。手続きは簡単です:
1回
2.06%
3回
5回
4%
10回
5.5%
12回
5.5%
15回
8%
18回
10%
20回
\\%
2個
12%
30回
16%
36回
I 7 X
48回
72 %
60回
28%
/
, 500 . 000 . 000 . 0001 . 000 , 000 , 000 , 00031 . 000 . 000 , 000 . 0001 . 000 . 000.000 83
112333432233693 J312
VYVVVVVVYVVYVVnYVVV
価偭愐価価価価価愐価愐愐価価11¥愐価低愐
14 料料5特 W 特特特特特特特4(9««特5:
■店頭大恩謝セ—ル実施中//:ゲ—厶ソフト(ビジネス)新製品続々入荷中// •
現金 I 括払ぃ
振込先
《計測技研》
I- 〇データ増設 RAM ボード
■ PIO-6BE2-2M(2MB)
特価 ¥35,900
■ PIO -6 BE 1 -A (imb) BPIO -6 BE 4-4 M (細)
特価 ¥18,800 特価 ¥62,800
通信販売のご案内
王
国通販
□ 銀行振 込で申し込みの方は商品名
及びお客様の住所•氏名•電話番号
をお知らせ下さい。
〔振込先〕第一勧業銀行渋谷支店
普通 No.l 163457 ㈱ オーエーランド ■年中無休です.グ
I r 現金;:; 留で送金されるお客様は電話番号と商品名、数量を明記じ C 同封じ r 下さ
い。 □ク レジ 外でご購入を希望される方は申し込み用紙をお送り致しますのでご記
入の上返送むて下さい。2〇才以上の方は、原則とじ r 保証人不要です。クレジットは
I 〜60回払で月々5.000円よりご自由に設定できます。
つ 0 A ランド
OA ランド推奨ソフト
镰 CZ -603 G-GY …
♦ CZ -6 I 3 D-GY …
• cz - IHbk -
(メーカ-保証付)
• CU -2 IHD - BK -
(メーカー保証付)
特価 ¥200,1
• 特価 ¥ 79,
特価 ¥218,000
,000 ^
,000 «c
參 CZ -8 PK 9 ……
► CZ -8 NSI ……
> CZ -6 BNI ……
(パラレルポード)
. 特価 ¥ 87,000 •KGB-X68PRK-00 … 特価 ¥ 22,000
(メモリ&コブロ增設ポード)
特価 ¥ 38,000
特価 ¥113,000
特価 ¥ 12,000
GZ-8PK8(2 台 )… 特価 ¥ 40,000
OA ランド今月の大沒5玉//=超八級中古品
SHARP 認定
PRO-SHOP
O . A ■於ド
( TEL )
03 -
■アフターサービス万全のサボート体制
•下取•買取は電話で見稍りしております。責任を持って下取
リさせて頂きます。
♦ご注文、お間合せは…,午前10時から午後7時まで
嫌商 a のお届けは入金確 K 後、即日発送致します。
■TE い FAX のお見積 OK//
■低金利クレジットをご利用下さい。
3770-8855 ►i *1 5 〜 2-14
SHARP のことなら
なんで $ おまかせ.ヴ
大徳買 セール/ 安〈値切ってネ。
お電話下さい。⑱価格をお知らせいたします。
!流通事情により、広告表示価格は、
;お安くなる場合がありますので、ドンドンお電話下さい。|
^ CYBER STICK
— n
BCZ -8 NJ 2
0 A ランド特価
(定価 ¥23,800)
► ¥18,000
國
* 見やすい澳字 4 桁表示// 1
j j 情報任時代の必期品//
■ PA - 950 0(¥ 48,000) ••.►特価 ¥38,000 I
■ PA -8500(¥ 28,00 0) … ►特価 ¥15,000
■ PA - 750 0(¥ 22,000) ..•►特価 ¥12,000
Q ) CZ -8 PjQ 4:( GY ) (48 ドット/カラー対応/ハガキ可能)
定価 ¥ 99,800 …… 特価
( DCZ -8 PKI 0 (24 ピン漢字プリンタ - 13晰)
定価 ¥ 97,800 …… 特価 ¥ 73,800
③ CZ -8 PGI (24 ピンカラー漢字プリンタ -8 晰)
定価 ¥ 130,000… 特価 ¥ 96,000
④ CZ -8 PG 2 (24 ピンカラー漢字プリンタ H 36 桁)
定価 ¥ 160,000… 特価 ¥ 117,800
オム□ン MD - I 200 A III . VI 4,500
MD -24 FP 4 II . ¥27,500
MD -24 FP 5 II *. ¥29,800
MD -24 FN 4. ¥28,000
MD -24 FN 5. ¥31,300
MD -24 FJ 4 . ¥31,300
MD -24 FJ 5. ¥34,500
MD -24 FS 4. V 28,500
MD -24 FS 5. ¥34,500
ァイワ PV - A 24 VM 5 . ¥32,500
PV - M 24. V 28,800
NEC COMSTAR 2424 4 . ¥28,800
COMSTAR 2424 5 . ¥33,500
OA ランド特選品,グ
'
■ IO -735 X ( 定価 ¥248,000)
參カラーイメージ•ケーブル付
17 _特価 ¥186,000
① CZ -6 VTI (カラーイメージユニット)
定価 ¥69,800 . 特価 V 52.500
(2 CZ -8 NS 1 (カラーイメージスキャナー〉
定価 v 88,000 . 诉« ¥138,000
3 C 2-6 BMI ( MIDI ポード}
定26,800 . 料® V 20.500
④ CZ -8 NJ 2( インテリジェント•コントローラー)
定23,800 . ««¥ 18.000
0 DCZ -6 TU ( RGB システムチューナー〉
定<1¥33,100 . 特優 V 25.000
-6 CZ -64 H (增設ハードディスク)
定価 ¥120,000 . ,僅¥ 89,000
⑦ CZ -6 EB 1 (拡張 I 0ボックス= 4ス Q ット)
定価 ¥88,000 . 料懾 V 66,000
C 8 C 2-6 BP 1 (数値演算プロセッサポード)
定® ¥ 79,800 . nmw 60,000
クレジ ツ •卜表' •
3 回
3 %
晒
4 %
1 咂
5 . 5 %
12 回
5 . 5 %
15 回
8 %
|0[〇]
10 %
20 回
\\% |
24 回
11 . 5 %
30 回
15 . 5 %
36 回
16 %
42 回
20 . 5 %
肋回
21 %
54 回
26 . 5 %
60 回
27 %
〒 150 東京都 渋 谷区円山町 20-4 第 5 日新ビル 1F
a 慮
関東エリアの送料は、1個につき¥1,000です。
★全 商品保証 害 付。 專 門のアドメ くイザーが、お客様のニーズに対応します ^
★初期 不良•輸送トラプル等に迅速に対応し、即交換させていただきます>
XBDD SUPER IHI
0 CZ -6 O 4 C-TN + CZ -6 I 3 D-TN
定価合計 ¥ 483,000
© CZ -604 C-TN + GZ -606 D-TN
定価合計 ¥ 427,800
X6B000SUPER-HD
① CZ -623 C - TN + CZ -6 I 3 D-TN
定価合計 ¥633,000
1 回
4664)00
12 回
42.100
24 回
22.200
36 回
15.400
ICZ -604 G
特価 M 348 T0OCT
ICZ -623 C
特価 ! £498i0OO^
( DCZ -623 C - TN + CZ -606 D.TN
定価合計 ¥577,800
1 回
425,000
12 回
38.400
24 回
20.300
36 回
14.000
X6S00DEXPERT-II
①〇 Z -603 C + CZ -6 I 3 D
定価合計¥473,000
1 回
348,000
12 回
31.400
24 回
16.600
36 回
11,500
© CZ -603 C + GZ -605 D
定価合計¥453,000
1 回
333,000
12 回
30.100
24 回
15.900
36 回
11.000
X6B000 EXPERTII-HD
0 CZ -6 I 3 C + CZ -6 I 3 D
定価合計¥ 583,000
1 回
TEL 下さい。
12 回
38.800
24 回
20.500
36 回
14,200
② CZ -6 I 3 C + CZ -605 D
定価合計¥563,000
© CZ -603 C + CZ -606 D
定価合計¥417,800
1 回
TEL 下さい。
12 回
27,800
24 回
14.600
36 回
10.100
IGZ -603 C
特価 ¥249^000^
ICZ -6 I 3 C
特価 M44&eocr
1 回
414^)00
12 回
37.400
24 回
19,500
36 回
13.700
( DGZ -6 I 3 C + CZ -606 D
定価合計¥527,800
1 回
TEL 下さい。
12 回
35.100
24 回
18.500
36 回
12.800
X68000 PROII
0 CZ -653 C + CZ -6 I 3 D
定価合計¥420,000
1 回
288,000
12 回
26.000
24 回
13,700
36 回
9.500
© CZ -653 C + CZ -605 D
定価合計¥400,000
1 回
273,000
12 回
24.700
24 回
13.000
36 回
9.000
X68000 PRQII-HD
0 CZ -663 C + CZ -6 I 3 D
定価合計¥530,000
1 回
TEL 下さい。
12 回
35.200 1
24 回
18.600
36 回
12.900 1
② CZ -663 C + CZ -605 D
定価合計¥510,000
© GZ -653 C + CZ -606 D
定価合計¥364,800
1 回
TEL 下さい。
12 回
22,300
24 回
11.800
36 回
8,200
ICZ -653 C
特価 M28&eoor
ICZ -6630
特価 M39&00CT
1 回
TEl 下さい。
12 回
33.900
24 回
17.900
36 回
12,400
③〇 Z -663 C + CZ -606 D
定価合計¥ 474,800
1 回
TEI •下さい0
12 回
31.600
24 回
16.600
36 回
11.500
■期間中、セットでお買い上げの方には、 (1 V ボール 2 ニュージーランド•ストーリー(ゲーム)の
がついてきます。さらに、 d テトリスやドルアーガの塔などの入ったゲームパックもプレゼント.グ
1 回
355,000
12 回
32.100
2 徊
16.900
36 回
11,700
1 回
315,000
12 回
28.400
24 回
15,000
36 回
10.400
■光磁気ディスク ユニット
• CZ -6 M 01
(定価 ¥450,000)
特価 ¥335,000
■SCSI ボード
• CZ -6 BS 1
(定価 ¥ 29,800)
特価 ¥22,300
■ビデオボード
• CZ -6 BV -1
(定価 ¥21,000)
特価 ¥15,600
■ SX-WINDOW
(次世代インテリジェントソフト)
定価¥6,800
特価 ¥ 5,100
■ C 2-249 GS
fCANVAS-PR068K)
定価 ¥29,800
特価 ¥ 22,300
■ CZ -245 LS
( c - コンパイラ II >
定価 ¥44,800
特価 ¥ 33,500
■ CZ -255 GS /256 GS
(ドローグラフィックライプラリ 1/2)
定価¥8,800
特価 ¥ 7,000
■ CZ -260 LS
(X Bas to C CHECKER)
定価 ¥9,800
特価 ¥ 8,000
■ CZ -219 SS
(OS9/X 68.00 0)
定価 ¥23,800
特価 ¥ 23,800
X 680(](] 用周辺機器コーナー
モデム
フリンタ— セツ ト コーナー
周辺機器コーナー電話で値切ろう。
SHARP XB 日 OCKD シリーズセットどんどん tel 下さぃ
[ Z ] S _ : I
§§§§§§=§§
7698776987
2457957802
VVVVVVVVVV
通価価価愐愐偭価価! i
特待特特特待恃特恃待
:• 0000000000
セ 0000000000
□ 0000000000
ブ 4848226260
3579279136
赛丨 -
.! --¥¥¥¥¥¥¥
@ - iol 23401234
iffo -ooooll- -
と '* よ ! K
0
08
■表示価格は、税別表示です。詳しくは、お電話にて、お問い合せ下さい。掲載の価格は、12月下現在です。
m 金に gs
とにかく一度*御来店下 s い/
H 界一広い、ツクモパソコン本店
> C 6 B 001 I コーナーで お客様のおいで
S お待ちしてお〇ます//
そこで移転に伴い古くなった 7 号店の展示品の大処分セール
を実施します。どれも1、2台の数しかありませんので、ご了承
くださいね。
例】他にもありますので是非ご来店ください 0
C 6 的00 EXPERT ( CZ - BOEC - GY )
(68000 PRO-HD ( CZ -662 C )
i ラーイメージスキ ■— ( CZ -8 NS 1)
8ドット熱転写プリンタ ( CZ -8 PC 4- GY )
36桁ドットプリンタ ( CZ -8 PKB )
0 MB 八ードディスク
; •の他棚ずれ品など
F ■ルト台 ( CZ -6 ST 1 E ) 台数少
/ IZ - 2500ランゲージシリーズソフト
0,000^
4215,000^0
,ジジジより
.. ¥5夕仰ジより
- ^59^00^
. ¥59,咖よ D
..… ¥;,嫩より
•… ¥ん嫩より
名古屋、
扎幌でも
決算大セ
ールを行
つていま
す。是非、
ご来店下
さい/
B 日 000 シ 1 j ーズ本体
PRO II CZ -653 C
定価 ¥285 r 0 O &
P 闩 OII - HDCZ -663 C
定価 ¥395 rW
EXPERTII CZ -603 C
定価 ¥338 t 6(»
EXPERTII - HDCZ -613 C
定価 ¥44 S ^0 G -
HUPERSEU
SUPER-HD CZ -623 C
定価 ¥498 T 000〜
ツクモ特価販売中./
1 MB 増設 RAM ボード 2 mb _ ra . ド
( ACE / PRO シリーズ用) (消費税 別途 ¥570) 4MB 增設 RAM ポード
ツクモ特価ヂ,ジジク
ツクモ特価 V 彡7,戊於
(消贄税別途 ¥1,110)
ツクモ瀬 V ’付卯
(消*税別途 ¥1,920)
※計測技研のメモリーポードも取り扱っております。価格については、お尋ねください。
ぺワーアップアイテム
アードンール
八ードディスク
瞑準タイプ八ードディスク ( SASI )
テック IT XB40(40MB)
ツクモ特価 V ^,扣ク (消 贄税 別途 V2.544)
,イテック IT X6B0(80MB)
ツクモ特価 Y タデ,れ^ (消 贄税 別途 V 2 . 994)
3 CSI 八ードディスク
3 CSI ポード CZ-6BS1 定価矿 29r800
T X80S(80MB) 定価 28,000
ツクモ特価V ダヂ,の^ (消*税別途 V 2,994〉
T X130S(130MB) 定価 VI58,000
ツクモ特価V f 25 , 000 、 消费税別途 v 3, 074)
KX 68000 SUPER シリーズ以外の 機檯は
CZ-6BS 丨 (SCSI ポード)が必要です。
DZ-BM01 定価 V450r000 ツクモ特価販売中
fe 光磁氕デイスクカートリツジは別売です。 (30r000 円)
庚 X68000 SUPER シリーズ以外の機種は CZ-6BS1
(SCSI ポー
-ド)が必要です。
CZ - BMQ 1
• NWP -539 N メ^
光磁気<ディスクユちッ身
• CZ -6 BS 1 1 • J
SCSI ボード
• SCSI ケーブル
參光磁気ディスクカートリツジ
ツクモ特価¥ 次於 (消費税別途 ¥3.840)
. 定価 ¥21,000
. 定価 ¥B9 t 8G0-
. $価 ¥797800
合計定価 ¥509,800
39^000
(消費税別途¥11, 940)
ク レジ ット例 (42 回払•税込)
初回¥14,274十月々VI2,300 X41 回
■ハードウェア
-•流メーカーイメージスキャナ |台数限定 1"
CZ-6BV1 ビデオポード .
CZ-6VT1 カラーイメージユニット .
CZ-6BP1 数値演算プロセッサボード…
■ソフトウェア
CANVAS PRO-68K . 定価 ¥29r80O-
Z's STAFF PRO-68K . ツクモ特価¥ダク,芝撕 消費税別途¥1 .479)
マジックパレット . ツクモ特価¥ /ダ, (消費税別途 ¥504)
彩 クロン Expressa68 . ツクモ特価¥ぬ*, 消費税別途 ¥2.499)
デジタルクラフト . ツクモ特価¥5•多於%? (消 R 税別途¥1 ,014)
開発 ツール
• C Compiler PRO -68 K Ver 2.0 . 定価¥447800
• SX-WINDOW . 定価 ¥6 t 800-
• XBAS to C CHECKER PRO -68 K . 定価 ¥9 t 800
ミュージックツール
NEW プライス
お手軽な MID セット A
CM -32 L . 定価 ¥69750&
SX -68 M . 定価 ¥ T 5 rSG(k
Musicstudio Mu -1 Verl .4 定価 ¥ T 9 tS 0 Q 、
ックモ特価
^^rOOO
お手軽な MIDI セット B
CM - B 4 . 定価 ¥ T 29 t 000-
SX -6 BM . 定価 ¥ T 9 r 8 G 0~
Musicstudio Mu -1 Ver 1.4 定価 ¥ t 978 00-
ックモ特価
^/ S^fOOO
嵌「1^此比51:11出〇 PR 068 K Ve 「2.0 又は 「Music PR 068 K 」 く MIDI 〉 のソフ
卜の場合には、¥9,500プラスになります0また、これらのソフトウェア
がバージョンアップにより価格が変更になった場合には変更となります。
追加
オプション
機器
はなうたくん
CP -40
定価 ¥33 r 000
MIDI キーボード
コントロー ラー
PC -200
定価 ¥ 367000
情報 ツール
電子手帳シリーズ
ハイパー 電子システム手帳
PA -9500 1^^
定価 ¥48 tOGG
•表計算カード PA -9 C 1
••…定価 ¥16 tGQG
ド PA -9 C 90 (64Kbyte) 定価 ¥ 1 4 T G 0 Q
PA -9 C 91 (128Kbyte) 定価 ¥20 rGQO
PA - 明的.
CE-300L 通信ケーブル.
電子手帳対応ソフト
CYBER NOTE PRO-6BK -
Stationery PRO-BBK .
• ツクモ特価¥艺ダ,扣ジ
(消費税別途 ¥744)
… ツクモ特価¥ぞ,50ク
(消費税別途 ¥75)
定価 ¥ I 9,80 Q
定価 ¥ T 4,8 0 Q
ツクモク□一八ルカー F
太/好/評/入/会/者/募/集
国内•外で大活躍/
使って安心、持ってて便利/ック
モグロー バルカー ドはジャックス •
VISA 、 セントラル•マスターとの提
携 カードです 〇 ツクモ各店でのお
買物がらくらくできるうえに、国内
はもとより海外でのショッピングも
0 K /
(03)3251-9898 又は各店で/
18
生以 C3
で上 n 3
もな .:
〇ら
K
JE 1
, ^ar •
7u^?5bla*n0120"377*999
商品についてのお問い合せは
各店店頭又は
S 03(3251)9911 へ
秋 葉 原
表示価格には消費税は含まれておりません。
クレジット払い
月々 Y 3.000以上の均等払いも
頭金なし、夏•冬ボーナス2回
払いも受付中/
現金書留払い
〒101-91東京都千代田区神田
郵便局私 窨箱丨 35号
ツクモ通販センター Oh/X 係
# AM 10:15
〜 PM 7:00
<§毎週木曜日
と13日 d
カード払い
通信販売ての 鲫 利用カート、ツクモグ
ローパルカード、 VIP カード、セントラ
ル、ジャックス ※御 本人禅より電話て
通信明売部へお申し込み下さい 3
全国代金引吉換え配達
お申し込みは 003-3251-9911 へ
お 電話 I 本/
配速 日の指定もてきます。
銀行振込払い
事前に》でお届け先をご連終下さい 0
富士銀行神田支店(苷) No. 894047
ツクモデンキ
各種 U —ス払い
くわしくは各店にお問い合せ
下さい。ケースに合わせてご
相談にのらせて頂きます。
ツクモは「ス -/ H ( PRO SHOP 」 です。
九十九電麵 MB
亍 101-91 東京都千代田区神田郵便局私害箱135号
★商品のこ注文は在庫確認の上お願いします。
ツクモパソコン本店 O 03-3253-5599 (徂当/荒并 〉
便利で 安心な通價販売
ツク モ通販 センター S 03-3251-9911
■ツ クモ A V / カメラ 醸 O 03-3254-3 的 9 ( 徂当/川名)
■ツ クモ ニューセンター 店 003 -3251-0987( 徂当/福地)
■ツ クモ 5 号店 S 03-3251-0531( 徂当/森)
■名 古屨 1 号店 Q 052-2 B 3-1 B 55( 徂当/吉高〉
■名 古腥 2 号店过 052-251-3399( 徂当/横山)
■ツ クモ札 帳 S 011-241-22 昍 (祖当/田口)
旭川店
广 oibb- 25-7771
旭川市4条8丁目ツジビル
■営集時間11:00〜19:00
C2-653C » «
C 2.6050 9ステレれ r :- 卜 I
上:籌1 .
t 鹰番 パーフ x クト
TETRIS
1 重 ft の野9柏00辟雄伝
T 一 ,i — -
V 285.000
VII 5.000
V 6.800
V 6.800
V 6.800
V 9.800
t
C
f
1
り
札幌44及店 \
ron- 251-5315 i
礼幌市中央区南2条西2 丁目
ブロックビノレ 6 F
■営業時間11:00〜19:30
豊
池袋本店
^1800(
XBBOOQEXPERTI
K SX 66000
-睿秘こんたアートの ttlf
XS 68000
J 5.000
M . B 00
^•ビス
CZ .603 Ci 料 V 338.000
C 2 HB 0 旧 9スチレォ社—力”テレ匕 VI )5.000
リップスティックアドベンチヤー Y 6.800
ウァリス r Y 9.800
ygAii . Y 7
ハ•ワ フル麻雀2 V 7.800
住友 3 M 5 2 HD フランクディスケット Y 18.000
御希3ゲームソフト . サービス
CZ .604 C , •
CZ •田 2 D
住友 3 M 2 HD ブランクティスケ外
鬌罨 a ケ-ムソフ r
c
8.000
5.000
8.000
_ビス
X6BQ00EXPERT1
XS 6 8000
新 D
f MHI 1 的- rt « MI ま ? Ml |
WQOOO
I CZ -604 C ,*,
CZ -605 D
X68000EXPERTII :
SS 6 B 000
A
C 2-603 C V 338.000
CZ -604 D スチレ〇トポ?しス7い1 V 94.800
住友 3 M 5 2 H 0_/ ランクディスケット V 18.000
鹤#■ゲームソフト サービス
ti 友 3 M 2 HD フランクディスケット
M 望ケ-ム ソフト
jmr 1
C 2 603 C ? t Y 338.000
CZ 606 D • ¥ 79.800
往友 3 M 5 2 HD 7 ランクティスケット Y 18.000
•い. り m り-パ、スだつ, •い Xbaooovw ) な* ^ アオヤマかオトク
X•丨を鲫講入いたたいたお*椹に«り, CZ 8PC5( 定94.800〕を
す金•の方は会!!ダイアル にて Call/
たいたお!;蠊 に «リ .7 スキーターホス r ノク蚤峙 •1V2.98C、 XE.IPRO を栲通V
800 にて CZ .8 NJ 2; インテリシ i ントコン ⑴ -ラ): v 23.80 0) をか iVl 6.900にて
^7«足ゎ爾两 J 2 ット
1168000
二 含わせてお 申 I 込み T さい
与^:賓演中てす各店 X 68000 コーナーか常投されておリ1す
S 周辺枝
CZI
•603 CCY ?cit
CZ 6030 GY ,
ステレオスピーカー
ti 友 3 M 2 HD フランクティス ケント
御 * a ケー ムソフト
クレー傾$お11羅せ ッ
SY 68000
CZ 652 C 6 Y Tti
CZ .6 MDGY ’
住 3 C 3 M 2 HD プランクディスケル
御#望ケ-ムソ乃
チタンカラ ー t 入: sCMf 曹蕙買
H 68000
の蓽仑て (》 金 B どこでも出罹サービスかうかかい i す万一の蠓
い.•お窨褊名齣と電 tt 働娉だけ T 亭鶊1>は兜了
ジッ I
•ゆつく 〇、お支払いは日力月先から
MUSIC PRO 68 K V 18 800峰明食 Htt . OS 9 X 6 B 000
"? 9.800 峰 V ??,300 Hurnar.GBK vur 2 0 V 9 BO 0_ l » 金
- A の til VI ? 800 螓1«金”<1 パ STAFF PRO 56 k
19 800 峰 « 倉, I 懂 C TRACE V 68 000 峰 V 3 a 000 K « rr ,
./^ V 6800 C ^ V 49 600 C .« n .4 i PRO 68 K ^ a -^
こ淵
CZ .604 Cr _ ? •,
C 2 606011
住友 3 M 5 2 H 0 プランクティスケット
»* a ゲームソフト
t
[
>2
: J
•I
1
Ki
,
月
f
i
琴
:^yrT
PAwAt r IS ' #¥2fl
•♦現金特価
rb 時现畫:
フ EXPERTII
A©YAMi
OF YO
R ^AC
パ-ツセット
緬斬お蘭, •ノフト G ツト
SJ 68000 <-^}
ナイトアームズ
サイパリオン
グラナダ
きゃんきゃんパニ-
スターシップランテフー
V 9.800
¥9.700
Y 8.800
V 8.800
Y 6.800
Y 8.800
安すざて表示て办 i せん
クレシントてもゎ•申し込み出来 iT
ステレオ MIDI 8 灣 t ! ノ
SS 680002
CZ -68 MI •• -
CM - 321 a - ラ --”.,: H *
MA.12AVX2. .i
MUSIC PR 0 MI 0 I -n -
ソングライプラリ . -►«
瓜 B 00
)9 ( iii ()
If 26.81
V 69.0(
VZ 8.000
V 28.800
V 8.800
_ V 6.9 C 0
VI 2.8 C 0
射
ステレ:^ OIMS ルヴ•ル: 7 ランク丨
U 68000 パ
ント.?-少フ?1メ?丨
| パ-ツセット 戈
SX -68 M Y 19 .I
MT -32 V 64.
MAI 2 AVx 2 V 28.000
CFI 0 1 •* V 22.000
PC -200 » 丁 ¥36.000
19.800
)4.000
ソンクライブラリ フ a 身—一
お貢上げの X 68000 と含せて*利用いただけ1す
9.800
8.800
カラークラフインク t 2 ント |
SS 6 Q 000: 4
GT .1000 • ¥79.800
二5220 ケーフル: y 7.500
Z s STAFF-PRO V 58.000
I_ V 5.300-
I V 9.80 0-
• YI 03 .的0
100 - :4:'
ボなしし
MKJ - 12回
ホなし傾なし
SUPER HD
X -68000 SUPER HD : 卜 ]
sxs 日000 Q I
CZ -623 Cn - '•- MHODr »5« )1498.000
CZ .606 Di » » 79.800
住友 3 M 2 H 0? ランクデ < スケット K 18.000
«* a ケームソフト サービス
SHARP
X68000 SUPER HD | n
SS 6 B 000 1
CZ -623 Ctii ? •. th : vHDo ^« If 498.000
CZ -6020 bi 1 99.800
li «3 M 2 HQ ^ ランク ディスケット 1 18.000
衡棄 2 ケーム •ノ乃 サービス
V 10.300-
TVL .•爾なし
V 15.503-,.
■r V - !爾なし
V I :ド IX )*# w 金
t - 力付 6030 ティスフレー)…
•• Y 9 i />0_«#大_«
ワールドインアオヤマにおまかせ下さ
「返品 • 交換について 1
返品•交換は商品到着後3日以
内にお願いいたします。
[ 電話でのご注文の場合 1
日か •か 4 im こ4り,に]/)•つ , If
r 03-3987-7771
厂クレジットご利用のこ
|i はお電話でか/
<返品•交換をお受けする場合〉
•不良品(キズ•汚 W ) が届いた塌合
•ご注文商品と a う商品が屈いた壤合
上 k の塌合、返送料は当社が負担いた
します.たたしお客«の奉由(注文ミス
などによる g 品の場合、返送料はお客
椹の負担となりますのでご了承下さい
<次の!*合返品•交換はお受けできま
せんのでご注意下さい,〉
I 1度ご使用になった商品 2お客枝
の資任でキズや汚れが生じた商品
3全ソフト商品
お霣 K 番号はおかけ閜遒いのないようにお
願いします。
•いたた,<したら . i
さ: I とし aa とお*”か不5
いたことかすぺて觭肩萼!"
(■スタッフがわ•役に立ちます
部 V 011-251-6771
i 5? LV 092-672-7771
@ と*の
お好きな時間にお章話を./
テしフオム
シ3ツビニ7
ご«含に含 h せて自由にお5
全|»を议定てさ i す
手玟さはとて tw 摩そしてス
tb ろん手 ttf4UI5 低金辱0
お支Iムぃ t 月々I 000円か*^
お?等に彳史いやすくなったァ: n
シットです
舀:
電話受付時間
|月嚷日一金權日 10:30-20:30
1 生の味方キャンパスク t
It
| 土•日嚼日•祭日 10:30-19:00
「日中ご不在がちな方はお振込] r クレジットカードも ok / 1
昼間ご不在がちの方、お息ぎの方は》
行振込が便利です.,
お申し込みからお届けまで、お時間をと
りません>
►銀行振込みの場合
取引18行
仕友 a 行池袋支店
口座番号
蕾 A 1065392
口座名
蠊式金社ワールト•インアオヤマ
クレジットカードをお持ちの方お支払は
1回払いです。お申し込みの BU
1カード名2会 UNa 3有効期限をご
連》下さい。
カートてお申し込みの蠓食.
お電 U にて h 間い合せ T ? い
! サポート
キ-ンハスクレンノトのフクか5
かリ1した«»高〗0万円 i て G
てさ手的さもその罎で即
6«々丨000円からと.とって I
ァォャ 7 UMr さんを応!金し If
0
支払いはナント 84E
H 支仏い U 少なく、ゆっくりと 9-
才なら i ft 8431て自由に!:
ホーナス《« V潜やしたリ咸らした* J
んホーナスー括や二?い
] 0
うゆうお支私いは8ケ
返品•交換についてのお間い合わせは
お客様相談室 03-987-7795
く万一のときにも完全バックアップ〉
万一の初期不良があった壜合で t 当社
では万全の体制でお客樺をフォ a —技
します
议-い續螬は今すく议しい/
たけと以莳の a —ンか枝って v
极雖してか*〇始めたい
こいう方にお助め
8ャ月先; t てならいつ始めても
二れな b とっても安心てすね
6袋店ソフト店池袋シヨ H トム福岡店
^03-3989-1171 广的39的-7771广的!!-716-7】
島区柬池袋 1-28-6
ールシティビル 2F
営業時間11:00〜19:〇〇
豊島区東池袋 1-27-12 明治生命
池袋ビル 9 F •首都高速道路側
■営業時間11:〇〇〜19:00
指岡市中央区渡辺通り 4-9-25
ユーテックプラザ 4 F •地下鉄天神 4 R
■営業時間11:00〜 19:3 C
平成3年1月1日より東京の局番か4桁になり 5 m こ3かつきました
CffSCTMB
V 6.700 ^
ぞ V :つ二 :'^L
V 8.000- • >:
:ぞなし HIV .
VI 2.000 -
TV ?] jO : す八
VM 7.300,十:
if vr . X : ,ル“
li «3 M 5 2 HD フランクチイスケット l 18.000
«* a ケームソフト サーヒス
X68000EXPERTI |
SY 68000
新 L
コース
: ZB 53 C ! 本 《 y 285.000
^•6050 VII 5.000
主 X 3 IB 2 H 0 ブランクデイスケット.! f 18.000
_#* ゲームソフト サービス
X6BQQQPRCII I
S 68000
: Z-653C f« V285.000
: Z-6020 - y 99.800
£X3M5 2HQ7 ランクチィスケット Y 18.000
蒙*2ケームソフト サーヒス
AOYAMA だからオトク
SHARP
X 68000 お買上げの 1
お客様へ
V
令1却出張サホート*
私共にて::堝入いたたいた
XS 6 Q 000.:
全国出張サホートかうけられます-.
X 68000 PRQU I
SS 68000
G
BQXBBQHEB 9 P
I V 8.300 - J ,.: :«v
I VI 5.200 へ,1
6.7001/: C
お*けいた l
•以前 当社にて X 68000 及び
大均 f 5 にてお届けいたし J
• X 68000 H : パてお 貢い 上げいた
• CTRACE を衿僅 V 39
;けいた UT 御主文の
X 68000 をはしめソフト&用辺«11»は、当 U ; 也袋店 j し料::
X 6已00□ソフト!
SCSIK - KC 2 6 BSI ) r Bf -6|
- JfiT :-« lO )?- SI 68 M . -*V 15 300 U 61
CZ-653C ! •« V 285.000
CZ-6060 - 1 79.800
住友 3M5 2HQ? ランクディスケット V 13.000
11*2 ゲ-ムソフ )■ . サービス
…- .....f • ** y 249.800
バソコン A®tr ント(ソフト C 一みのる2( ¥12.800) ♦モテム MDMF P5ll?400Jn モテム (1M2 80 O)〕_¥42.800 A«t? ント:ノフトX 1
C6-300L(*3 500 ノ,サイハーノート MlC(W9J00> ♦•子翏«私 8W0(«S000>)_¥38.600 *CU MHD: スチレォス t-mt: 卜 f パ — ,ス:>
-の 9八一トサーヒス
実績のメンテナンス/完全バックアップシステム
G 界一醤 の スーパーク レジット
S 生の味方、キャンパスクレジ t
ますますワイドに。
0 支払いはナント/84回ま7
E 1 うゆうお支払ぃは 8 ヶ月先か
サポート
0 —のと杏ち完全バックア•」
会興•保険
□先 雄の" CLUB 246"。
D ンシュアランス•サーヒ
0 —ンとお得な下取りシスう
—•ンョッブ..-
S 鼸 - のサ - ビス舡、触れて 、 i
回 EST SHOPS BEST SERVIS
サービス&ポリシー
El —ンとお得な下取りシスラ
• 配送日指定 OK * 土•日配送 OK • 札幌 PAX に霣取専鬥ショップ OPEN • 奪鬥スタッフが常時待機*中古パソコン
4ヶ月間保証 • FAX 見相りサービス•もちろんクレジットカードも使えます*カード払いでキヤッシュレス
札帳店
^ on -25 M 777
礼幌市中央区南2条西3 丁目
リンク ェギ ビル 3 F
■営業時間丨1:00〜19:30
ワールドインアオヤマのコンセフトシヨッフ
參 rami M « ms となり^ z ひ x 前
H 68000 PRO II 111680 OC
: XBSOOOPBOI |
SJ 6 Q 000
X68000PRQH
WG 8000
CZ -6 S 3 C ^
CZ . 6040
C 2 aJ 2 _
ナイト アーム
サンダープレ
V 285.000
V 94.800
,ロー • V 23.800
V 9.700
V 9.500
スーパーハングオン . V 7.000
バック マンア V 7.800
ジ x ノサイド 18.800
ヴァリス I Y 9.800
tt 友31152 HOT * ランクヂィスケット Y 18.000
舞# B ケー ム ソフト サービス
_X680(X)PRO|_ j
SS 6800〇
CZ -6 MCTN ,”
CZ -6061 D
CZ -8 NJ 2 --
住友 3 M 52 HD 7 ランクディスケル
壽昜3ゲームソフト .
V34a000
V 79.800
V 231800
v iaooo
サービス
V 8.000-v
TV . :れ 1-
V 12.000” こ .
::V
VI7.300 V . 1
:. 作〜し
SS 6 B 000
CZ -653 C 1 1»
CZ 6040
御希 a ゲームソフト
新 E
コ I
| X68QOOPRO_n _|
lYeedoo
CZ .652 C 8 K "
CZ -6 D 2 DBK • 一”—テレ c
住友 3 M 52 HD ^ ランクティスケント • V ia 000
獨焉2ゲ-ムソフト ^rhi:rr^ ¥サービス
X6B00QEXPERT1
1166000 m
CZ.M3CV33
CZ-6050 • , • レ,ス t -mt チい ¥11
住灰 3M52H07 • ランクディスケット Y I
卿 # «ゲームソフト サ
: 〇〇
•パソコンのセオリーが体験できる。•パソコンだけのスペース 0
池雄本! EOPEN /
vm
Smjtutei
CHiAlrvi L,t STOm
TOKYU HA
索:急ハンズ泔
CtMLUX
1 AMOS
東急ハンズ池袋店となり
ZY 前
お客様相談室
^03-3987-7 795すでにご注文いた
だいているお届け時間(時期)やメンテナンス、 その他の
お問い合わせは右記へお電栝下さい。
■ FM-TOWNS 版 ■ PC-S801 VIVI21 以麯 U V51 以味各 ¥9,1300 ( 雛
.,在.: PC . 98 DO 及7.卩(^ 8 〇作聞 21 >\/阽 11 /(^ノ1^ 21 /(^ 11 ても-ケ,今 ( 4で_ますが助作スヒ7ドダ連くなります
6. LICBNSED"THR9^G|h AN 'AFPIL'IATION WITH ER lNTfRNAT(f)K(^Ll..t.' j99p.VtGTG>R MUS|.QAi INDUQTBjE?, INC
冒 i t e m
株式会社ア < テ /j
本社/〒251神奈川県藤沢市南藤沢 8-1-202
TE し 0466-27-1 668代) FAX.0466-27-2800
東京ショールーム/〒】05東京都港区新橋 4-31-7 中村ビル 7F
TEL .03-3434-41 71 FAX .03-5472-5315
■平均アクセスタイム 23 ms , 又バッファサイズ、 32 K バイトを装備
満足のいく高速性能を提供
■パーソナルには余裕の 40 M バイトの記憶容量更に増設用
HXD 042 を付加することにより最大 80 M バイトまでのディスクシ
ステムが利用可能
■Human 68 K ( Ver 1.00 以上)、 OS 9 対応既存の多くのソフト
ウェアがそのまま利用可能
■交替セクタをユーザー領域から独立しかも Format ブログラム
により自動実行
■切電時のオートパーキングロックを採用不意な衝擊に対しても
磁気面を保護
■高品質、低価格を実現
HXD 040: Xsto 「40/ l 台目用外付モデル ¥118,000
( X 68000/ ACE / EXPERT / PRO 用)
HXD 042: Xsto 「40/2 台目増設用外付モテル……¥128,000
_0, ACE<HD> EXPERKHD) PR0<HD) HXD040 又 ttHXDMO の場投用 )
HXD 140: Xstor 40 /内葳用モデル ¥9日,000
•テータ転送速度/ 1.5MB/S •インターフェース/ SCSI (シンクルユーサ)
• 交替処理/ FORMAT コマントによるセクタ単位の自動交替処理•外
形寸法/ 35HX155WX313Dmm(HXD040/HXD042) ハ 35HX155WX
41Dmm(HXD140)* 重量/約 2.5kg(HXD040/HXD042)/! 城 00g(HX
D140)
詳しいカタロクが必要な方は本社までご請求下さい
•:•内蔵用モデルの対応機種については、お問合せ下さい,.
•ガイアの牙
1990
Mm inn i/ifit
COMMAND
齡る
を引 《 り、敝、た!
が v その時ちらりとガイの旭の中の宝
グラディウスに続け!今月も Xlturbo 用同
人ソフトだ 0 紹介するのは Moon Light Magic
による電脳絵本といった感じの SF アドベンチ
ヤーゲーム。 5"2 D 2 枚組のボリュームでお届
けする。
先月はお休みしたが,12月号で紹介したX
lturbo 版グラディウスの反響はなかなか凄
かった(当然か?)。
その後,編集室に現れた横内君,初めて見
たという X68000 版グラディウスではとまど
いながらもいきなり2周目の最終面に突入し
てしまうあたりはさすがといえる。横内君も
いまは受験生。今後の展開に期待したい。
さて,今回紹介するのは 「Moon Light
Magic」 による Xlturbo 用 ( 2ドライブ要)
の SF ア ドベンチ ヤーゲーム だ0
宇宙船の事故に巻き込まれた主人公フェリ
サと謎の男ガイの物語。唐突に事故直後から
始まり一気にラストシーンまで突っ走る。シ
ナリオはストーリーに依存するため基本的に
一本道の構造となっている。コマンド選択式
ということもあり,ふつうにやっていけば絶
対にいきづまることはないだろう。決して単
調な展開ではない。かなり大胆に話が進んで
いくのだが,途中の枝葉が少ないので展開が
さらに早く感じる。
全体に コマンド に対する キヤ ラク ターの レ
スポンスがいい。変に SF とかストーリー重
視というのでなく娯楽作品に徹しているのが
成功しているといえるだろう。
グラフィックは見てのとおり,枚数もかな
り多い部類に入るだろう。音楽も気合いが入
っている。オリジナル曲13曲が OPM 版と PS
G 版で用意されており,どれもかなりがんば
っている。ミュージックモードもあるぞ。
特に後半はカット割りが細かい。その際,
グラフイック表示のためのデイスクアクセス
が若干長めに思える (5 秒弱)。しかし,デ
イスクアクセス中でもちゃんと音楽演奏して
いることを思えば,かなり健闘しているとい
えるだろう。 Xlturbo 専用と銘打つだけは
あるということか 0
全体に作り惯れた感じで安定感がある作品
だ。__
_入手方法_
価格は送料込み1,200円。購入希望の方は例
によって,
XI特集というわけではないのだが,来月
もX1関係のゲ T •ムを紹介する予定。キーワ
ードは 「Xlturbo Z 専用」だ0
〒273-01
千葉県鎌ケ谷市鎌ケ谷 1-12-37 稲田和明
まで封書で問い合わせてほしい。
なお,売買に関する問い合わせやトラブル
に,編集室では対応できないので注意してほ
しい0
1) 申し込み内容を書いた手紙
2) 料金分の無記名の郵便小為替
3) 返送先を書いた宛名シール
を用意し,
THE USER'S WORKS 25
1990 年度
HIE IF IE ¥
l ノ I ミ l ネ l _ l 卜 I 作 I 品 I 発 I 表 I
1 的0¢度のゲームソフトの傾向と対策
選択 iifi 募部門
さあ。さあさあ。来ましたよ,これが〇 GAME OF TH
E YEAR のノミネート発表が。見てください,ずらり揃っ
た顔ぶれを0どれも,こいつを抜きにしちゃ今年のゲーム
界を語れないぜ,という強豪ばかり。確かにどれも人気が
あるし,優劣なんてつけられないかもしれない。しかし,’90
年のゲームをきっちり締め括ってこそ,これからのゲーム
が楽しみになろうというもの。ここはあえて「オレはこい
つを推すぜっ j という読者の皆さんの声で10年のベスト
ゲームを決め,頭をなでてやろうじゃないですか。
で,この GAME OF THE YEAR ですが,今年から大き
く変わりました。各賞が整理されてご覧のとおり。あやや,
ちょっと寂しいんじゃないの,という気もしますが,みん
なで決めるものはキッチリ決めて,あとは独断と偏見たっ
3、°りの「勝手に GAME OF THE YEAR 」 て*盛り上がろう
というコンセプトなのです。今年はスタッフの乱入も予想
されますので,それに負けない気合いの入ったハガキをお
待ちしております,ハイ。
そしてノミネートの選考方法0 Oh ! X ゲーム大賞につい
ては後出のチャートの上位から選び出し (1 989 年度以前の
作品は除外),さらに1 990年12月号掲載の作品の中から上
位に入る実力があると思われるものを考慮しました。ほか
のノミネートに関しては従来どおりの推薦です。しかしそこ
はそれ , GAME OF THE YEAR だからして乱入投票もな
んでもアリ。異議のある方は遠慮なくかかってらっしゃい。
さらに,今年から皆さんにとってのゲームライフがどう
だったか,’90年を振り返ってのハガキを募集したいと思
います〇「春の新作,あれとこれで迷ったけどこっちにしち
まったぜ!」とか「これを買ったとたんにこのソフトが発
売決定して〈やしかったっ!」という声を全国に轟かせて
やるという方,ぜひふるってご応募ください。のどから手
を出してお待ちしております。おえ。
さあ能書きはここまでだ0とにもかくにも君のハガキが
なけりゃ始まらない 。 GAME OF THE YEAR の栄冠を手
にするのは誰か!?
決めるのは,君だつ!!
OhlX ゲーム大賞
GAME OF THE YEAR の大黒柱ともいえる
のがこの Oh!X ゲー厶大賞です。 ’90 年のゲ
—ムシーンをもっとも娠わし,ゲーマー達
の心を熱くさせたゲームに贈られる,よ一
するに「とにかくあんたがいちばん偉かっ
た!」賞なわけ。この賞を取った強者こ
そ,30年を象徴するにふさわしいゲーム
なのです。
しかし,今年は「これが強かった」と単
純には括れないほどゲームの多様化 • 複雑
化が進んだのもまた事実。ノミネート作品
もそれを表すように多種多様な性格のソフ
卜が揃っています。どれも「今年の思い出
のゲーム」として支持する人がいそうなだ
けに,どれが大賞を取るかはひとえに熱心
なフアンの多さにかかっているという感じ
もしますね。
ダンジョン • マスター ( X 6 8 000)
ポピユラス ( X 68000)
ソーサリアン(含シナリオ集)( XI )
ワンダラーズ•フロム•イース ( X 88000)
スーパーハングオン ( X 88000)
シムシティ ー ( X 6 8 000)
ラグーン ( X 68000)
グラナダ ( X 68000)
三国志 II ( X 1/ X 6800 0)
メタルサイト ( X 68000)
アルガーナ ( XI )
バブルボブル ( X 6800 D )
天下統一 ( X 68000)
ナイトアームズ ( X 68000)
ナイアス ( X 88000)
26 Oh ! X 1991.2.
グラフィック賞
X 68000 はずばぬけたグラフィックパワー
があるだけに,ソフト ハウス 間のグラフィ
ックに関する力量の差が表れやすいという
ことができます。そんな厳しい環境のなか
で,グラフィックに関して優れた美的セン
スと演出のテクニックを発揮していたと誰
もが認めることのできるものがこれら6作
品です。どれも単に綺麗に描かれていると
いうだけでなく,キャラ同士の対決や,シ
ナリオと連動した演出など,画面をうまく
使うということに関しては,ほかにはないな
にかを持っているものばかりです。
• 機甲師団 ( X 6 B 000)
• グラナダ ( X 6 B 000)
• ナイト アーム ズ
( X 68000)
• 闓の血族(前 • 完結
編) ( X 68000)
• ラグーン ( X 88000)
• ワンダラーズ • フロ
ム•イース ( X 68000)
音楽賞
ゲームを盛り上げる手段としてすっかり
定着した音楽ですが,今年の大きな特徴と
しては Ml DI 対応が進んだことが挙げられる
でしよう。特にモトスのように3種類の音
源に対応するほど力を入れた作品も登場し,
MIDI ポードはゲーマーの間でも必需品とな
りつつあります。
また,単に BGM としてだけではなく,シ
ナリオ • 映像とシンクロした音響効果とし
て使いこなした作品が出てきたことも今年
の特徴のひとつで,そういった作品への評
価がどうなるか注目されます。
• グラナダ ( X 68000)
• ナイトアーム ズ ( X 68000)
• メタルサイト ( XB 800 0)
•モトス ( X 88000)
• 闇の血族(前 • 完結編) ( X 68000)
• ラダーン ( X 68000)
ブロクラミンク技術賞
以前の「特殊演出部門賞」に代わって設
置されたのがこの賞です。単にプレイヤー
への アピール度が高いということのみなら
ず,高い技術力でマシンの限界を引っぱ
り上げたゲームに対して贈られます。
ノミネート作品を見ると,画面関係のテ
クニックに目がいきがちという気もします
が,それを差し引いてもラスタースクロー
ルな どのテクニックが X 68000 のゲームに
与えた影響は大きいものがありました。
また,アルガーナの 5 重スクロール はま
さに圧巻。これが究極という XI のテクニッ
クを見せてく れたことも 見逃せません。
ゲーム デザイン賞
今年のゲーム界が受けたもっとも大きな
衝擎が,このゲームデザイン面でしよう。
いうまでもなく海外ソフトの登場によるも
のです。
海外の3作品はいずれもジャンル分けが
通用しないほどのオリジナリティを持って,
おり,似たもの同士の多い日本のゲーム界
ではいっそう熱烈なゲーマーの支持をもっ
て迎えられました。
一方,日本でもリアルタイムのシミュレ
ーシヨンという独自のスタイルを構築した
機甲師団など,大技とはいかないまでも光
るものを持つゲームが登場しています。
• アルガーナ( XI )
• グラナダ ( X 68000)
• スーパーハングオン ( X 68000)
• ナイアス ( X 68000)
• ナイトアームズ ( X 68000)
• メタルサイト ( X 68000)
自由]}&募部門
•機甲師団 ( X 68000)
• シムシティー
( X 68000)
• 大航海時代( XI )
• ダンジヨン•マスター
( X 68000)
• 天下統一 ( X 68000)
• ポビユラス
主演演キャラクター賞:
去年はテトリスの直線ブロックとサ
イバースティックという,フセインも
ビックリの結果になったこの賞,今年
もみんなの思い入れを尊重するという
ことで,あえてノミネートはしません
でした。あなたのこの丨年のゲーム
ライフで,忘れられないキャラクター
に清き一票を投じてあげてください。
麵ナ脱線ゲーム賞
せっかく楽しみにしていたのに,いざやってみ
ると「はぐ一」とタメ息のでてしまう,いわゆる
「〇〇 ゲー」,そう,あのアイツに対する叫びを誌
上で発散させてやろうじやないかというのがこの
賞です。ただし,グチはだめですよ。他人を楽し
ませることのできるハガキに限ります。また,「み
んなは嫌いだろうけど,ぼくはここがいいから好
きなんだ」というハガキも受け付けてますよん。
その他自由■部門賞
あとは読者のみなさんのセンスに任せ
た自由応募部門赏。もうなんでもアリ。
面白ければ通します。ちょっと’90年の
ことならこれはいわせてくれということ
があれば,迷わずこのコーナーにあてて
送りましょう。思わず鼻からコーヒーを
嗅いてじまうようなムチャクチャなハガ
キを,スペースを空けて待っております。
GAME OF THE YEAR 27
グラフで見る TCP 10
:>
ここでは上位10タイトルのゲームが,この1年間の TOP 10 の中でどのような動きを見せてい
たかを,グラフつきで紹介します。コンスタントに人気を得ているもの,また月によっては票
が得られなかったものなど,タイプはさまざま。改めて見直すとけつこ5面白いもんですね。
登場してすぐに I
位を キー プ。みんな
が ゲームを クリァす
る頃にランクを落と
し,さらにシムシテ
ィーの登場によって
票を奪われたが,最
近またカオスの逆襲
のニュースにつれて
持ち直した。
2位 ボピュラス
意外に人気の立ち
上がりが鈍かったゲ
ーム。 I 位になった
ときはかなりのブッ
チギリ状態が続いた
が,最近になって鎮
静イ匕してきた。プロ
ミストランドの発売
がもう少しあとだっ
たら……。
ベテランらしく成
績にムラがない。夏
場にパテるところま
でベテランらしいが,
涼しくなると「ここ
まで来たらあとは I
位だ」の声のもとに
再びパワーを取り戻
した。さすがは大御
所といったところか。
海外ソフトにはさ
まれてやや不運な境
遇だった。が,人気
があることには変わ
りない。また,ラグー
ン,ギャラガ J 8 な
ど,アクションもの
が初登場した月に弱
くなるという性質を
持っている。
夏の終わり頃から
銳い伸びを見せたこ
のゲーム。が,ラグー
ンともつれて足元が
おぼつかないという
現状を,いまだに引
きずっているところ
がある。今後トップ
の座に戻ることはで
きるのだろうか。
シムシティーにひ
と月遅れて登場。さ
すが去年の実力者,
ズームは得票が安定
している。しばらく
は現状維持といった
ところか。今年もチ
ャートを賑わせそう
だ。しかし,もう少し
発売が早ければ……〇
1
アフターバーナー,
ファンタジーゾーン
より持ちこたえた。
ズーム ファンが「ラ
グーンが出るまでは
つ」と粘りながら力
つきていくさまがグ
ラフによく出ている。
それでも8位は見事
なもの。
春先,秋など気候
がよくなるとふらつ
くのは,みんな天気
がいいと本物のバイ
クでツーリングに出
てしまうからなのか
(そんなバカな)?
これぞ先が読めない
ソフトの典型といえ
る0
シムシテイー
9位 グラナダ
非常に典型的なス
マッシュヒットのグ
ラフパターン。サッ
と盛り上がってサッ
と消える「ひと夏の
恋」型とでもいえば
いいのかな。すぐに
忘れて,しかもあと
くされなしってヤツ
ですか。
10位 三国志 II
最初の波は Xlturb
〇版発売。次の波は
X 68000版発売決定。
最後の波は X 68000
版発売。光栄のファ
ンは実に正直者揃い
だ。しかし,なんで
発売されるとすぐさ
ま順位が下がるんだ
ろう?
28 Oh ! X 1991.2.
TOP 10 新年早々仕事納め
〜那年の TOP 10 の動きを斬る!!〜
集計したのは’90年1月号から別年1月号まで(ただし’昍年2月号は休み)
の12回分。その月の1位のゲームに10点,2位9点……10位1点とポイントを
与え,その合計を集計しました。それがこの表です。
No .
ゲームタイトル
ソフトハウス
ジャンル
対応 機種
1
3
4
5
6
7
8
9
10
II
12
1月
年間
1
ダンジヨン•マスター
ビクター音楽産業
RPG
X 68000
0
0
10
10
10
9
7
9
7
0
5
7
74
2
ポビユラス
ィマジニァ
シミュレーション
X 68000
0
0
0
5
9
10
10
10
10
7
6
3
70
3
ソーサリアン
日本ファルコム
RPG
Xlturbo
8
6
8
6
4
4
1
3
3
4
7
5
59
4
ワンダラーズ•フロム•イース
日本ファルコム
RPG
X 68000
0
0
4
9
8
8
8
1
6
6
1
0
51
5
スーパーハングオン
シ ャープ /SPS
アクション
X 68000
0
9
7
2
0
0
5
4
9
3
0
0
39
6
シムシティー
ィマジニァ
シミュレーション
X 68000
0
0
0
0
0
0
0
0
4
10
9
6
29
6
ラグーン
スーム
RPG
X 68000
0
0
0
0
0
0
0
0
0
9
10
10
29
8
ジェノサイド
スーム
アクション
X 68000
7
5
3
2
5
1
4
0
0
0
0
0
27
9
グラナダ
ウルフ • チーム
アクション
X 68000
0
0
0
0
0
7
9
8
2
0
0
0
26
9
三国志 II
光栄
シミュレーション
Xlturbo / X 68000
0
0
0
3
0
6
3
0
8
5
0
0
26
II
メタルサイト
システムサコム
アクション
X 68000
3
10
9
0
0
0
0
0
0
0
0
0
22
12
アフターバーナー
電波新聞社
アクション
X 68000
10
8
0
0
0
0
0
0
0
0
0
0
18
13
アルガーナ
M . N . M . ソフトウェア
RPG
XI /turbo
0
0
6
0
6
3
0
0
0
0
0
0
15
13
バブルボブル
電波新聞社
アクション
X 68000
0
0
0
8
7
0
0
0
0
0
0
0
15
13
天下統一
システムソフト
シミュレーション
X 68000
0
0
0
0
0
0
6
7
2
0
0
0
15
16
テトリス
BPS
パズル
Xl / turbo / X 68000
9
3
0
0
0
0
0
0
0
0
0
0
12
16
ファンタジーゾーン
電波新聞社
アクション
X 68000
5
7
0
0
0
0
0
0
0
0
0
0
12
18
ナイトアームズ
アルシスソフトウェア
アクション
X 68000
4
1
6
0
0
0
0
0
0
0
0
0
II
18
サイバリオン
シャープ /SPS
アクション
X 68000
0
0
0
0
0
0
0
0
0
1
8
2
II
18
パロディウスだ!
コナミ
アクション
X 68000
0
0
0
0
0
0
0
0
0
0
3
8
II
21
ギャラガ’88
電波新聞社
アクション
X 68000
0
0
0
0
0
0
0
5
5
0
0
0
10
22
ナイアス
ェグザクト
アクション
X 68000
0
0
0
0
0
0
0
0
0
0
0
9
9
23
サンダーブレード
シャープ / SPS
アクション
X 68000
0
0
0
7
1
0
0
0
0
0
0
0
8
23
ワールドコート
SPS
アクション
X 68000
0
0
0
0
0
0
0
0
0
8
0
0
8
23
エアーコンバット.遊犁王 II
システムソフト
シミュレーション
X 68000
0
0
0
0
0
0
0
0
0
0
4
4
8
26
サーク
マイクロキャビン
RPG
X 68000
0
0
0
0
0
5
2
0
0
0
0
0
7
27
スタークルーザー
アルシスソフトウェア
RPG
Xlturbo / X 68000
6
0
0
0
0
0
0
0
0
0
0
0
6
27
ファーストクイーン
呉ソフトウ: I :アエ房
シミュレーション
X 68000
0
0
1
0
3
2
0
0
0
0
0
0
6
27
A-JAX
コナミ
アクション
X 68000
0
0
0
4
2
0
0
0
0
0
0
0
6
27
クォース
コナミ
パズル
X 68000
0
0
0
0
0
0
0
6
0
0
0
0
6
31
斬
ウルフ*チーム
シミュレーション
X 68000
0
4
0
0
0
0
0
0
0
0
0
0
4
31
夢幻戦士ヴァリス II
日本テレネット
アクション
X 68000
0
2
2
0
0
0
0
0
0
0
0
0
4
33
トンネルズ&トロールズ
スタークラフト
RPG
Xl / turbo / X 68000
0
0
0
0
0
0
0
2
0
1
0
0
3
34
V’BALL
シャープ /SPS
アクション
X 68000
2
0
0
0
0
0
0
0
0
0
0
0
2
34
機甲師団
アートディンク
シミュレーション
X 68000
0
0
0
0
0
0
0
0
0
0
2
0
2
36
サバッシユ
小学館
RPG
X 68000
1
0
0
•0
0
0
0
0
0
0
0
0
1
36
イメージファイト
アイレム
アクション
X 68000
0
0
0
0
0
0
0
0
0
0
0
1
1
ではさっそく結果を見てみましょう。注目の
年間ランキング丨位は ァ,
ダンジョン.マスター!丨(拍手!)
最大のライハリレ,ポピュラスをかわしての堂
々 I 位。トップの回数ではポピュラスに負けて
いますが,その間もしっかり上位をキープし,
秋以降はカオスの逆襲のニュースでゲームシー
ンを賑わせてくれました。斬新なゲームシステ
ムと,そのシステムならではの面白さをキッチ
リと出している点にはプレイヤーをうならせる
ものがあります。
また,今年は海外の大作の活躍が目立った年
でした。チヤートを見ても,ダンジョン•マス
ター,ポピュラスの強さは群を抜いているし,
シムシティーも発売時期の遅さにもめげず6位
を獲得しています。
そんな海外ソフトにちょっと押され気味だっ
た国産ゲーム勢。なんと,最高順位をとったの
応募要項
GAME OF THE YEAR の投票は,
1 . 愛読者カードの記入撊
2. 官製ハガキもしくは封害
のいずれかに応募したい賞の名前とソフト名,
そして推薦理由を明記して, Oh ! X 編集部までお
送りください。採用ハガキの中から抽選で2名
の方にハンデイスピーカー,9名の方にカード
ゲームをプレゼントします。締め切りは2月15
日(消印有効)。たくさんのご応募をお待ちし
ております。
は Xlturbo 用のソーサリアン。ゲームの完成度
と XI ユーザーの執念が揃うと,チャートのこ
こまできちやうんですねぇ。毎月ランクインし
たのは,37本登場した TOPIO のソフトの中で,
このソーサリアンのみ。拍手拍手 3 続いてのワ
ンダラーズ•フロム•イースは,期待したほど
の支持が集まらなかったようですがそれでも4
位。日本ファルコムが国産ゲーム勢の I . 2フ
ィニ ッシュを飾りました。
それを追いかけるのが, X 68000 専用ソフト
と他に類を見ないカリスマ性で支持を集めるズ
—ム。ゲーマーをして「ズームだからよい」と
いわしめてしまうのは有名な話。ラグーンも7
位に入っています。
X 68000 専用ソフトは去年よりだいぶ数が増
え,ランクの上位にも顔を出しています。グラ
ナダ,メタルサイト,ナイトアームズといった
ところは,どれも X 68000 ユーザーの優越感をく
「1990ゲーム回顧録」のお知らせ
ゲーマーの生活は常に波瀾万丈に満ちている。
どのゲームを選び,どれを究めるか。ゲームを
巡って日々繰り返されるさまざまな事件•陰謀 •
策略。時に怒り,時に笑い,また時に涙を流す。
ゲーマーは毎日が真剣勝負なのだ。
なんてカツコいいもんかどうかは知りません
が,’90年の「ゲームと私」についての意見を
募集します。自由応募部門のように単純に「こ
のゲームはこうだった」では括れない話を官製
ハガキもしくは封害に書いて送ってください。
すぐる秀作でした。順位は低いものの見逃せな
いのが22位のナイアス。案外 ダークホース かも。
さて,ビデオゲームの移植ものでは SPS と電
波新聞社が双璧ですが,今年はスーパーハング
オンを5位に入れた SPS に軍配が上がりました。
一方の電波新聞社はやや マニアック な要求に 応
えていたようで,去年発売のア フターバーナー
が最高位という結果に終わっています。このジ
ヤンルにはコナミ, アイレム,システム サ コム
などが続々と參入しており,来年は激戦区にな
る気配が濃厚。特にコナミのパロディウスだ!
は前評判で18位に入るほど。’ 91年の大きな話
題のひとつです。
ランキング全体としては,非常に納得のいく順
番になったと思います。集計の方法上《長く遊べる
ゲームのほうが上位に行きやすいという傾向はあ
りますが,逆に話題性に流されないしっかりした
ランキングだともいえるのではないでしようか。
いちばん面白かった方にはアイワのカセット
ボーイをさしあげます。かしこ。
GAME OF THE YEAR 29
CANVAS PRO -68 K
で使用できるグラ
フィックデータ集 c
憤れるまで時間が
かかる ツール だけ
に充実したデータ
集はかかせない。
今後も拡充してほ
しい。
• り〜**
ABC!)F.FC;III.»K
I.MNOPOR.S'TU
VWXYZ
nbcdofghijklmnoixirs
tUVWXyz 1234567890
ABODEFGHIJKLMN
OPQRSTUVWXYZ
& tiisdi (5 CgDiili{|teGmDii
opqpcttravwjsyE
AQCDbEIFGMEJ
0 CLMNOTOR
SHUVWXYZ
; , \m
“実験的”というタイトルがつけられている
が,もともと Oh ! X のグラフィック特集すベ
てが実験的といってもいい。
まず, Z ’ sSTAFF を2 D ツールのプラッ
トホームとしてとらえてみた 0 Z ’ s - EX に拡
張された機能には,_像処理,2 D と3 D の
融合などテーマは尽きない。
しかし,実験の最たるものは機能拡張その
ものだ。それは PICFILER 式の呼び出しか
ら始まり, Z ’ sSTAFF のマスク機能との融
合にいたる。現在,多くの種類のソフトでァ
ドイン ( Addin ) 型の ツールが出てきてい
る。基本機能はそのままに,必要な機能はあ
とからユーザーが組み込んで使用することが
できるのだ。グラフィックの場合,圃像処理
などのフイルタはアドインソフトにもってこ
いの存在だ。もともとの強力な機能にあわせ,
ユーザーレベルでの拡張の可能性ができたわ
けだ。
パソコン上のレイトレーシングツールもボ
クセル分割という高速化の山を乗り越え,つ
いにポリゴンとメタボールという「自由曲面」
への道を歩み始めた。となれば次世代のッー
ルに求められるのは「より自然な圃像生成」
であろう。
このあいだまでワークステーシヨンがやつ
ていたことだから,はっきりいってまだパソ
コンには荷が重い。 HASH は思い切った簡
略化で実験的に半影処理を達成した希有のシ
ステムである。作成される映像は従来のレイ
トレ ー シングの弱点を見せつける。
が, HASH は使用するプリミティブを球
に限定したことを抜きには成立しえないとい
っていい。まさに実験的であるにもかかわら
^1
IS
愚
^onfrulHlutions!
1
川 M フォント _
rad Jack
□ 口 (Tip N « us «
0()11 C > r ^ macT nts
rl ' ?xhk
| 木 ゴシック体
,け
I
旧
.鳙し
1
ず,完成されたバランスを持っているので次
の一歩が踏み出しにくいのだ。
実用的なシステムを組むための方法として
はプリミティブを追加することではなく,影
の計算と物体の計算を分離することが最善だ
ろう。たとえば,プリミティブを使って物体
を作成するときにその物体の内部を球で埋め
る処理を加える。レンダリング時の隠面処理
はプリミティブを使い,影の計算部は球を使
う……などが実現できれば実用に足るシステ
ムを構築できると思われる。こうして次の実
験が必要になってくる。
統合化へ
最近のグラフィックソフトの流行では 2 D
ツールでも 3 D 的な処理が行えるようになつ
クラフイツクの “ 実験的”手法
IB
CG の始まりはドットの集合体であった。図形を表しう
るグラフィック画面を経て,アナログ闩 G 日の普及によ
り,我々は連続した色彩の空間を手に入れることとなっ
た。それは従来の「形 j を主としたパソコン CG の世界
から「質感」までも表現することのできる,そこにひと
つの世界を再現できるものだった。
パソコンの計算能力も向上し,その手法や表現力はワー
クステーションの域にまで近づいた。画面の表現力は時
として画材を超えていた0しかし,まだ我々はパソコン
CG の可能性のすべてを見ているわけではない。想像の
翼は新しい世界を拡大し続けるのだから。
0 2 レイトレーシング
初^者のためのグラフィックあ n これ
.JH
嚇
.
rj
CANVAS PRO 6 日 K
ドロ 1 グラフィックツーノ .
. 丹
嚇
Z.sT 闩 IPHONY DIGITAL CRAFT テ
ポリゴン デ-夕 r 3 D (^13 j .
…….丹
m
廳レポート
OT" A「r"? 丄II r-v/ .
.m
嚇
Z SJd 1 A 卜卜支援ツー )v/- S ヒ入
rr
レイトレーシンク]: m 、 て半影を生成する
IJ A 01 J V .
rlAorl.A
—THJ 了
laSSOT レポート
FineScanner 一 XB 日 .
30 Oh ! X 1991.2.
■I ' .
,
伊 U
士 'U i ノ…:
す I し、 私
DIGITA
L CRAFT での作!!例。 —
マゥスで部品を置ぃ ^ ~
ていくだけで手軽に
3 D CG が扱える。 %.
W ^6r
•» — ■■ .. す ,…. :— 一、‘..,—: . - «w ^ 、', '»••.. ». ,—. V—* ' . ' . ▲ • • 垂 ,
〇 ,嘗 T
一目瞭然の柔らかな影。右側が従
来のレイトレーシングによるもの
で,左側が HASH . X による画像の
出力例だ。
2つの画像にそれぞれ処理を加え,
さらにマスキングを施して合成し
たところ。 Zs - EX の比較的単純な
応用例だ。
てきている。球や円錐などの物体を作成して
その上にマッピングを施したり,できあがっ
た画面を3 D 状に処理したりできる。 Z ’ s-E
X で行っている3 D マッ ビングは 一種の ロー
カルレイトレーシング である。
また, 3 D グラフィックがアヵデミックだっ
たころには御法度だった (?)3 D ツールの
出力をペイントソフトで修整するといったこ
とも行われるようになっている。
もともと 2 D も 3 D も絵を描くための手法
にすぎない。グラフィック環境は統合される
べきだろう。といっても全部まとめてしまえ
というのではない。必要もない機能までつけ
て重い システムを 作ってもしかたがない。統
一す る必要のある部分,それは 第一に ユーザ
ーインタフェイス, 次に データ 形式だ。デ ー
夕形式は統一しなくても形式さえわかれば変
換できる。しかしわからない(調べればすむ
という話もある)。たとえば Z’sTRIPHONY
のデータ形式, Z ’ sSTAFF のアウトライン
フォントフォーマット,サイクロンのデータ
フォーマット, CANVAS のデータ構造……。
特に Z ’ sTRIPHONY のデータはサイ クロ
ンで扱え,なおかつ Z ’ sTRIPHONY 自体の
エディタが非常に優れていることもあり非常
に惜しい。本来ならポリゴンだけでなくレイ
トレ用のプリミティブも編集できるようにし
てほしいところだ。いつだって強力なエディ
夕はシステムの核となりうるのだ。
2 D に話を移そう。
X 68000 では画像データフォーマットとし
ては F » IC が事実上の標準となった感がある。
32768色のデータを実に見事に圧縮する PIC .
R そして拡張された APIC . R はグラフイック
を使う者にとって最高の福音だった。
今後はもっと嵩張るデータ,すなわちレイ
トレーシングの フルカラー 出力 ( RGB 各8
ビット)に対しての拡張が行われるべきだろ
う。65536色の範囲で計算していてはマッハ
バンドは追放できない。1600万色で計算して
おいて65536色に落とせばずっと綺麗な_像
が得られる。ただ,こうしてできた画像は非
常に圧縮効率が悪くなる。 PIC をもってして
もだ。24ビットデータ時点で PIC 圧縮をかけ,
展開時に65536色にするというわけだ0
すでに画面解像度の変換(拡大/縮小)や
階調落としの技術は完成されているといって
いい。 展開に時間がかかることさえ厭わなけ
れば非常に大きな意味での画像ファイルフォ
ー マット の統一 すら可能だろう 0 Macintos
hll や PC -9801 のフレームバッファを使用し
特集グラフィックの''実験的〃手法 31
Zs - EX で拡張されたさま
ざまな機能を使用したと
ころ。マスクペイント,
フレア処理,ランダムフ
ラクタル,そして 3 D マ
ッビング…… 。
製品一覧 XB 8000のクラフイツク環境
K?4«4> t I
Z ' sTRIPHONY 用データ集「 3 D 俱
楽部」の使用例。ポリゴンでもこ
んなにリアルな C G が可能。気分
はもうインテリアデザイナーだ。
ている ユーザーは 膨大なデータをもてあまし
ているのだから。
SX - WINDOW のような環境であればも
っとデータ運用を意識したツールも出てくる
のだろうが,現状では閉じた世界が多すぎる。
SX-WINDOW (正確には SX シェル)のグ
ラフィック能力がそれらを取り込めるほど(物
理的に)高くないのが残念ではある。
DTP がますます流行し,今後は文書まで
も統合したソフトウェアが登場してくること
だろう。そのときこれまでのグラフィックツ
ールはどのように位置付けられるのだろうか。
グラフィックを始め,さまざまなツールはど
んどん広がりを見せる。そして,独自の世界
を作ってしまう。
「拡張と統一の両立」,それが Oh ! X の“実
験”である。
籲 2 D ペイント系 ツール
数が多いので省略。詳細は1990年8月号のグ
ラフィックツール紹介記事を参照のこと。
•2D ドロー系ツール
• CANVAS PRO -68 K (シャープ)
カラー対応のポップアートツール。テキスト
セル,ドローセル,ペイントセルの3枚のセル
を持ち,そのそれぞれにオブジェクトと呼ばれ
る部品を張り付けて絵を作り上げる。
ドローオブジェクトを制作するのには多少の
技術と根気が必要なので,ドローグラフィック
ライブラリも用意されている。
•3 D ポリ ゴン系ツール
• Z'sTRIPHONY DIGITALCRAFT (ツァイト)
ポリゴン(多角形)のモデリング/レンダリ
ングシステム。三面図や透視図のさまざまな表
示モードを使ってポリゴンを編集する。ポリゴ
ンは単体だけでなく,いくつか集めたものをひ
とつのオブジェクトというように階層化して管
理できる。回転体などの規則的な形状をした才
ブジ x クトは自動生成できる。
レンダリング時は,フラットシェイディング
で通常のポリゴンとしての表現もできるが,ス
ムーズシェイディングをかけることで,疑似的
に曲面に見せることもできる。また,半透明な
ポリゴンの表現も可能である。
用途を限れば,データ集も用意されており,
モデリングの手間を省くことができる。
籲 3 D レイトレーシング系 ツール
市販されているものは2つ。両者に共通する
部分を先に述べておくと,プリミティブ(基本
立体)として球や円錐などの2次曲面や直方体
などが使えること,プリミティブどうしの論理
演算が可能なこと,反射•屈折および影の表現
ができること,レンダリングの高速化を図るた
めにポクセル分割を採用していること, テクス
チヤ(カラー).バンプ(凸凹)•ァトリビュー
卜(反射率など)のマッピングが使えること,
物体を マクロ 化して扱えることが挙げられる。
• C - TRACE 68 (キヤスト)
ごく才ーソドックスなレイトレーシングツー
ル。
モデラーは付属していないので,形状ファイ
ルはテキストエディタで作成する必要がある。
トランスピュータ対応版 ( C-TRACE TP ) が
用意されている。通常のものとデータの互換性
がある。近く メタポールをサポートした新バー
ジョン ( C-TRACE + ) がリリースされる予定
である。
•サイクロン Express a 68 (アンス*コンサル
タンツ)
階層化モデラーというウリを持つレイトレー
シングツール。モデラーでは,レンダリングに
必要なすべてのパラメータを取り扱うことがで
きる。マウスには対応していない。
ポリゴンを取り扱うことができる。これによ
り表現力が上がる。ただし,サイクロン単体で
はだめで,ポリゴンのモデリングは ZsTRIPHON
Y DIGITAL CRAFT で行い,それをサイタロンに
データコンバー トして実現する。
32 Oh! X 1991.2.
特集 1 グラフィックの“実験的”手法
入門者のためのグラフィックあれこれ
CG の基礎知識
CG にもいろいろありますが,いちばん問題になるのはどう
TanAkihiko 日やって絵を描くかということです。たくさんのアルゴリズムが
生まれてきました。ここではそれらを理解するための基本的な
考え方を紹介しましよ5。
どうもグラフィックというと,ウケがよ
いわりに「数学が必要」で「難しい」とい
うイメー ジができてしまった感がある。グ
ラフィック特集のたびに違うことをやって
いるので新しい読者には ついて こられない
面もあるだろう。
グラフィックを描くだけなら理屈はいら
ない。可能性を追求すれば必要になる。コ
ンピュータグラフィックの歴史はまだ浅い
が世界中の頭脳を結集したアルゴリズムが
日進月歩で生み出されており,我々はその
多くを適用できるハードウェアを目の前に
しているわけだ。もうやるしかないではな
いか。
ここではこれまで扱ってきた,またはこ
れからも使われるであろう,さまざまなコ
ンピュータグラフィックの用語や概念につ
いてまとめを行っておく。まだ用語に惯れ
てない方やずいぶん昔のことなので忘れて
しまっている方は特に注意して読んでほし
い。ここでの解説では数式は一切出てこな
いので安心だ。
まずは CG (コンピュータグラフィック)
の基礎の基礎から始めよう。
パソコンのグラフイックはデイスプレイ
のドットの明るさを調整して図形を表現す
る。
色を表す場合には色を赤緑青の3原色
(光の)に分解して表すことが多い。 X 680
00の場合,それぞれ〇〜31の32段階が扱え
る(最大時)。これで表現できる色数は32
X 32 X 32= 32768色となる。
これを512 X 512=262144個指定すればど
んな 絵で も描ける。しかし,これを 手作業
で指定することは 512 K バイトのマシン語
プログラムを作ること以上に困難なことだ
といえる。そこで効率のよい ツールを 使っ
たり,コンピュータに計算させたりするわ
けだ。それが CG である。
ひと口に CG といってもいろいろな形態
が考えられる。ふつうに考えて, CG のも
っとも大きな区分は平面 (2 D ) か立体 (3 D )
かということだろう(昔,桊野雅彦氏がや
った4次元グラフィックとか祝一平氏がや
った0次元グラフィックとかはふつうとは
いえない)。もっとも,たいていは画面に
出力されるわけだから,最終的に 2 D には
違いない。ここでの区分は内部処理やデー
夕の構成によるものである。
2 D グラフィック編
なにが2次元かというと,画面が2次元
だからそれにあわ,せて絵を描くと2次元に
なるというわけだ。もともと絵というのは
平面的なもの。感覚的にもいちばんわかり
やすいのではないかと思う。
ここで出てくる用語として「ビットマッ
プ」というものがある。ほとんどのグラフ
ィック画面はビットマップだから気にする
必要のない単語ではある。画面上のドット
に任意に色指定できること,といった意味
で捉えれば いい。 要はふつうのグラフィッ
ク画面のこと。 X 68000 の画而などはワー
ドマップといったほうがいいハード構成な
のだが。
ビットマップでないものの代表例が X 68
000 のスプライ ト BG や XI の PCG だ。 スク
ロールゲームの 背景な どの 多くは四角形の
チップで構成されている。限られた色数と
限られたチップ数で絵を描く技術,ソフト
ハウスの チップ ワークの 優劣は ゲーム 画面
を見ていると明らかだ。うまく運用するに
は独特なテクニックがあるらしいが,詳し
いことは割愛する。
ペイントとドロー
2 D グラフィック ツールを 見てみよう。
Z’sSTAFF などの一般的なグラフィック
ツールは ペイン ト 系の ツールに 分類され る0
CANVAS などは ドロー 系 ツール だ。こう
いうと雛しそうだがペイント系はごくふつ
うの ツール, 問題は ドロ ー系だろう。 ドロー
は絵を構成する®素を手順で示し加工する
ことで絵を描いていく。
極端にいってしまえば,ペイント系は画
面上のピクセルを直接いじるツールである。
ピクセルは,日本語では画素という0画面
上のドットのことである。 X 68000 の65536
色モードでいえば, 512 X 512 個のドットが
あり,そのひとつひとつをピクセルと呼ぶ0
で,そのピクセルの色をひとつひとつ決め
るのがペイン ト 系のグラフ イックツールな
のである。ただ点を打っていくのではあま
りにも面倒だし,コンピュータの上に載せ
る意味がないので,さまざまなペンや便利
な編集機能を載せているのである。
対してドロー系の立場はかなり異なる。
直線や曲線や多角形といった図形を部品と
して捉えている。文字も部品のひとつであ
る。その部品を1つひとつ紙の上に乗せ
ていく,というのがドロー系のグラフイッ
クツールのイメー ジといえる。紙の上に乗
せるだけなので,あとから修正もできるし,
取り除くこともできる。拡大 • 縮小 • 変形
も,部品の座標データをいじるだけなので
容易に行うことができる。
半面,部品自体が単純なものになりがち
で,絵画的なものを描くのは不向きといえ
る。図版などを描くには非常に強力。ちな
みに今回の図版には X 68000 用の CANVA
S PRO -68 K を使用している。
3 D グラフィック編
3 次元グラフィックは パソ コンの 醍醐味
を教えてくれる。 2 D ならば コンピュータ
でなくても可能だが, 3 D となると コンビ
ュータ を使わなければ ち よつとできない こ
とだ。
ここでいう3次元とは内部処理のことを
指す。立体視とか赤青メガネとか,本当に
特集 cg の基礎知識 33
しない。カメラから視線を無数に発生させ
てシーン内に飛ばす。そして,最初にぶつ
かった物体がカメラから見えているという
ことにするのである。カメラの フイルムを
画面になぞらえ,画面上の1点1点に対応
する視線をシーン内に飛ばし,最初にぶつ
かった物体の色を画面に書き込めば,それ
で隠面消去ができることになる。
レイトレーシングの 考え方は,そのまま
反射•屈折,それに影の表現に応用できる。
ぶつかった物体がもし鏡のようなものであ
った場合,その視線が鏡に反射してどの方
向に行くかは簡単に計算できる。したがっ
て,このぶつかった点を新たな視点として
新しく視線を飛ばし,どの物体にぶつかる
かを調べる。これが反射の原理である。
屈折も同様である。
影である力す,視線がぶつかった点を新た
に視点とし,今度は光源に向かって視線を
飛ばす。もし,光源にぶつかる前に他の物
体にぶつかったら,最初にぶつかった点は
実はその物体の影に隠れているということ
がわかるのである。したがって,そこは影
になる。
法または Z バッファ法
透視変換
透視変換によリ •
視点に近いものほど大きくなるように
変形される。
立体に対応するアプローチもあるが,ここ
では単に3次元座標でデータを扱うもの,
要するに遠近法などを自動で処理してくれ
るものと見てほしい。
隠面® J 里
3 D コンピュータグラフィックとなると,
問題になるのは,物体の前後関係である。
2つの物体がある。2つは重なって見える。
ところが,遠くにあるはずのものがもうひ
とつのものを隠しているように見えたら,
たちまちにして両者の前後関係を認識する
ことは不可能になってしまう。遠くにある
ものは近くにあるものに隠される。これが
あるべき姿である。
この隠面消去と呼ばれる問題には解決法
がいくつかある。そのどれにも共通してい
るの力 5 ',結局近〈にあるものを描く,とい
うごく当たり前のことである。
まずスキャンライン法と z バッファ法か
ら。両者は違う方法ではあるが,似た部分
はある。
構図はューザーが決めている。ひとつの
図1シーン
シーン内には物体がいくつもあり,その中
にある位置と角度でカメラを置く,という
イメージである。
構図が決まったら,ここからは計算機の
仕事である。処理をしやすくするために,
カメラの向きがまっすぐになるようにシー
ン内の物体を移動してやる(少々不正確な
いい方だがぉ許しいただきたい)。まっす
ぐ,とは, Z 軸に平行,という意味である。
こうしたぉかげで,物体を Z 座標の順に並
ベるだけで,物体を視点に近い順に並べた
ことになる。そして,視点から遠い物体か
ら順に画面に置いていけば,結果として,
重なった部分では近いものが見えるという
わけ。
これをもう少し高度にしたものがスキヤ
ンライン法や Z バッファ法と呼ばれる描画
アル ゴリズムである。
そしてレイトレーシング。レイトレーシ
ングといえば派手な反射や屈折が表に出て
きがちだが,もともとは隠面消去の一手法
である。
レイトレーシングでは,シーン内の物体
をカメラの正面に持ってくるということは
図3スキヤンライン i
z
1
--- - - - -!
1
L
'、、、
0
、\
〆〆〆
図2レイトレーシング
スクリーン
34 Oh!X 1991.2.
図版は CANVAS PRO -68 K で作成
3 D グラフ
の2大潮流
ここまでの話からもわかるように, 3次
元コンピュータグラフィックは大きく 2つ
の流れがある0その2つの流れとは,レイ
トレーシング法を用いたものと,スキヤン
ライン法や z バッファ法を用いたものであ
る0それぞれ,ここでは「レイトレーシン
グ系」と「ポリゴン系」と呼ぶことにする。
実はこの呼び方は大間違いなのだ。なぜ間
違いかというと,レイトレーシングでもポ
リゴンは扱えるから。しかしわかりやすさ
を優先することにしよう。
念のためにいっておくと,ポリゴンとは
「多角形」のことである。多角形といって
も実際に使われるのは三角形,せいぜい四
角形がほとんどで,ポリゴンの 3 D グラフ
ィックというのは三角や四角をツギハギし
て立体を作ることだと思っていい。
速度について
レイトレーシングは,いまのところパー
ソナルコンピュータにおいてはかなり高い
地位を占めている。しかし批判も多い。日
く 「遅い」「リアリティがあるというがそ
れには制限がある」「形状表現の自由度が
低ぃ」などなど。
これらはいずれも,レイトレーシングの
持つ弱点を突く,痛ぃ批判である。逆にポ
リゴン系はこれらの弱点は克服している。
しかし,それでレイトレーシングの存在価
値が失われるわけではない。ポリゴン系に
もポリゴン系なりの弱点がある。両者は共
存可能なものなのだ。
描画速度について考えているうちに,レ
イトレーシング系とポリゴン系の違いがひ
とつ浮かび上がる。
レイトレーシングの場合,計算機は「い
ま,なにを描画しているのか」を知らない。
視線を発生させて空間に飛ばし,シーン内
のすベての物体と交差判定を行い,その中
でもっとも近ぃ物体を決定し,そこで初め
て描くべき物体を知るのである。これをピ
クセルごとに繰り返す。
ポリゴン系の場合は事情は逆で,登録さ
れている物体をひとつずつ描画していく。
いい換えれば「いま,なにを描画している
のか」を初めから知っているのだ。
この差は大きい。レイトレーシングが遅
い遅いと悪態をつかれているもっとも大き
な原因はここにあるのだ。なにを描くべき
か知らないのだから,ピクセルの個数だけ
いちいち探し回ることになる。とんでもな
いところにある物体でも,一応は視線と交
差しているかどうか検査しなくてはならな
い。事実,レイトレーシングの処理時間で
もっとも大きなウェイトを占めているのが
交差判定で,全体の数十%,ときには90%
以上にも及ぶ。
これを軽減するために,ボタセル分割な
ど数々の工夫がある。なにがどこにあるか
を前もって調べてぉけば,探し回る手間を
大幅に省略できる。
CG のリアリティとは
半分嘘混じりなのを承知でいう力 5 ',ポリ
ゴン系は形状の表現に関して自由度が高く,
レイトレーシング系は質感の表現に対して
自由度が高い。
レイトレーシングは確かに写真のように
リアルな画像を出力することができる。し
かし,現実とまったく同じリアリティを得
ることができるかというと,決してそんな
ことはないのである 0 レイトレーシングの
場合は,使えるプリミティブが限られてぉ
り,もしそれをちょっとでも外れるような
ものを作ろうとすると,たちまちにしてリ
アリティは崩壊してしまうのだ。どこのメ
一力一のクルマでもいい力 5 ',レイトレーシ
ングで作ってみるといい。写真のような作
品ができるだろうか。たぶん,とてもみっ
ともないものになるであろう。
レイトレーシングで扱えるプリミテイブ
は,実現が簡単ということもあり,多くは
ポリゴンによる立体^見 ( Z ’ sTRIPHONY )
球などの2次曲面にとどまっていた。そし
て,それらを論理演算で組み合わせたり切
り取ったりして目的の形状に近づけていた。
したがって,「チェック模様の台に乗った
金属球」と 力、, 「ガラスのテーブルに乗っ
たワイングラス」ならば,写真と見まごう
ばかりのリアルな画像を出すこともできる
が,自動車のような複雑で微妙な曲面を組
み合わせた形状は苦手なのである。ここに,
レイトレーシングの表現力のひとつの限界
があった。
ただし最近になって,パーソナルコンビ
ュータ上でも自由形状を扱えるレイトレー
シングソフトが現れつつある(プロの世界
ではずっと前からあった)。ポリゴンやメ
タボールである。いずれも2次曲面に比べ
て重い処理であるが,とりあえずスキャン
ライン法などを用いたポリゴンレンダラと
肩を並べるだけの表現力は身につけた。反
射や屈折や影を簡単に表現できる分,ボイ
ントは商い。
いつも問題は速度だけだ。
図4 3次元コンピュータグラフィックで扱えるプリミティブの例
特集 CG の基礎知識 35
特集 1 グラフィックの“実験的”手法
CANVAS PRO -68 K
ドロー系グラフィックツー J レの魅力
Macintosh の世界では多くのドロー系グラフィックツール
丁日—丹明彦 がありますが,国内にはそうし、ったツールはほとんどありません。
1 J そこに登場したのが XB 8000用の CANVAS PRO - 68 K です。
データ集も出たところで改めてその魅力を探ってみましよ5。
前回の紹介からしばらく時間がたってい
る。その間に , CANVAS PRO -68 K は
正式に発売され,はたまたデータ集も発売
され,もうお使いの方も多いことと思う。
そこで第2回のレポートをお届けする。
前回のおさらいから
CANVAS PRO -68 K は,いわゆるドロ
一系のグラフィックツールである。これま
で X 68000 のグラフィックツールといえば,
Z ’ sSTAFF を始めとするペイント系のツ
ールであった。ペイント系のツールは,画
面の上に色を置いていく。対してドロー系
のツールは,部品を作って,画面の上に部
品を置いていく。その部品はいつでも修正
できる。
CANVAS PRO -68 K は図形の印刷を
主眼としたツールである0プリンタに出て
〈るイメージそのままの画面で編集するこ
とができる,いわゆる WYSIWYG 方式の
ポップアートツールなのだ。
美しい印刷ができるグラフィック ツール
は長いこと待たれていた0ドロー系 ツール
は部品の情報をドットではなく座標という
形で持っているので,部品を拡大してもぺ
イント系 ツールの ようなモザイクにならな
い。印刷を目的としたものには NEW Pri
ntShop PRO -68 K があったが , CANVA
S PRO -68 K は ドロー 系の ツールで あると
いうことを セールス ポイントにしている 0
基礎知識編
前回は技術的な部分にまったく触れな
かった。その中で基礎知識として説明して
おきたいことがいくつかある。ペイント系
の ツールに 惯れた人には馴染みのない概念
も多いことた^ろう。
CANVAS PRO-68K はセルを編集する
CANVAS PRO -68 K にはたくさんの
動作モードがある。それを押さえておこう。
おいしい部分を味わうのはそれからだ。
アニメセルというのをご存じか(なんて
失礼な質問 ) 〇アニメセルは透明なシートで,
それに人物の絵を描く。あらかじめ描いて
おいた背景の上にアニメセルを重ねれば1
コマの出来上がりだ。アニメセルの上の人
物の動きだけ変えていけば,背景をいちい
ち描き直す必要がない。複数の人物が出て
きても,それぞれ別のアニメセルに描いて
おいて重ねるだけ。これは便利だ。
で , CANVAS PRO -68 K が扱うセル
•CANVAS PRO-6BK
29, 800 円 ( 税別)
•CANVAS PRO-68K ドロー グラフィックライブラリ
Vol. 1, 2 各 8, 800 円(税別 )
シャープ 003(3260)1161
はこのアニメセルに性格が似ている。セル
は3種類で,それぞれ,
• ドローセル
• ペイントセル
• テキストセル
と名前がついている0この3枚のセルを重
ねて1枚の作品を作る。3枚の間の優先順
位は自由に変えられる。
さて,この3種類のセルの上で編集する
部品はそれぞれ違ったものである。
ドローセルは CANVAS PRO -68 K の
目玉である。直線はもちろん,自由曲線,
円,多角形,その他さまざまな図形を扱え
る。何度もいうように,これらは印刷する
瞬間まで直線や曲線と いっ た部品としての
属性を失わないので,プリンタに出力した
ときの図形は,あくまでプリンタの解像度
をめ いっぱい 生かしたものになる。ハード
コピーとはこの点で違う。 一般に プリンタ
のほうが画面よりはるかに解像度が高いの
で,ハードコピーした画面では粗さが拭え
ない0その点,ドローセルは座標データか
ら印刷パターンを起こすので,いくら拡大
しても大丈夫。
一方のペイントセルは,通常のペイント
系 ツール に似ている。グラフィック画面に
図形を塗り付けてセルを作り上げる。ただ
このセルだけが唯一画面のイ メー ジその も
のをデータとして扱うので,解像度の点で
は少し弱い。
そしてテキストセルは,文字を扱う。文
字はいろいろな大きさで描けるし,自由な
配置も可能である。ベースラインを曲線で
指定すれば曲がった文章も描ける。小さな
文字をびっしり並べてスクリーントーンの
ようにすることもできる(かなり重くなる
が)し,大きな文字を出すこともできる。
そしてなによりも違うのは,こうして作
った文字の1つひとつはセルの上に浮いて
いる部品なのだ0まだセルの上に張りつい
ているわけではないので,マウスでつかん
でずりずりと動かすこともできる。指定し
た曲線の上にくねくねと並べることもでき
36 Oh! X 1991.2.
る。さらに,変形することも簡単にできる。
文字の装飾もいろいろあって,白抜き文字
や太文字,影つき,斜体,などが使える。
半角フォントに関しては , CANVAS P
RO -68 K のシステムデイスタにいろいろ
なものが用意されている。これはアウトラ
インフォントなので,拡大しても大丈夫。
印刷しても文字の品質は落ちない。
全角フォントは,デフォルトでは ROM
フォント(に スムー ジングをかけたもの)
だけだが, Z ’ sSTAFF のバージョン2な
どに ついて くるアウトラインフォントなど,
品質の高いものを利用することができ,巨
大な明朝体の文字も,楽に美しく出せる。
スケルトンモードと 1 J アルモード
ドロー セルとテキストセルには,それぞ
れスケルトンモードとリアルモードという
モードが用意されている。
スケルトンとは骨格のこと。スケルトン
モードでは,編集する図形の骨組みを,細
線で表示している。出来上がりのイメージ
とは多少ずれるのだが,表示の速度は速い。
通常,編集作業はこのスケルトンモードで
行う。ドローセルでは,ベジェ曲線の制御
点はこのモードでのみ表示され,移動や削
除もこのモードで行う。
リアルモードは,指定した色や装飾など
をすべてつけて画面に表示するモード。プ
リンタに印刷するときのイメージそのまま
である。印刷前に最後のチェックをするた
めのモードと考えていいだろう。
要するに,スケルトンモードは「作る」
ためのモード,リアルモードは「見る」た
めのモードである。
編集モードと浮遊モード
テキス ト セルにはスケルトン モード/ リ
アルモードのほかに,編集モード/浮遊モ
ードもぁる。
テキストセルの編集モードは,いってみ
ればテキストエディタ。ここでどういう文
章を入れるかをキーボードから直接打ち込
む。文字の色や装飾,フォントの種類や大
きさの指定はこの編集モードで行う。これ
らの指定は文字単位で行えるので,いろい
ろと凝ったこともできる。1文字ごとにフ
ォントを変えたら,脅迫状だって作れるぞ
(冗談)。
で,文章を作り終わったらぉもむろに浮
遊モードに移り,思いどぉりのレイアウト
になっているかどうかを見る。編集モード
はあくまでテキストエディタなので,実際
の印刷イメー ジはこの浮遊モードに来てみ
ないとわからない(さらに色や装飾の様子
を確かめたいときは,スケルトンモードか
らリアルモードに移行する )0 うまくいって
いないときは,また編集モードに戻って作
り直すこともできる。ここが,文字をも部
品として扱うことのできるドロー ツールの
強みである。
浮遊モードでは,文字をあれこれと動か
すことができる。文章の下にベースライン
と呼ぶ線が現れる。それをつかんで動かせ
ば,その文章を画面の好きな位置に移動す
ることができる。ベースラインを変形する
(自由曲線になっている)ことで,曲がり
くねった文章を作ることもできる。ただし,
文字そのものを変形することはで'きない。
変形したいときは,前回のレビューでやっ
てみせたように,ドロー セルに コピーして,
ドローオブジェクトとして変形する(この
とき,文字としての厲性は失われているの
で,たとえばフォントを変更したいと思っ
ても手遅れである)。
ペイント セルにはスケルトンモ ー ド/ リ
アル モードはない が, 編集モード/浮遊モ
—ドはある。編集モードでは円や長方形な
どのペイントオブジェクトを作る。ペンを
使って細かい修正をすることもできる。
そのあと浮遊モードに移って印刷イメー
ジを見たり,ペイントオブジェクトを動か
したりできる。むろんペイントオブジェク
卜も部品であるから,編集モードに戻って
自由に作り直すこともできる。
具体的にはなにがで吉るのか
さて , CANVAS PRO —68 K にはいろ
いろなセルと動作モードがある,といって
みたところで,具体的にはなんのことかわ
からないだろう。
CANVAS PRO -68 K の作業は,
• 部品を選択する。
•道具(編集項目)を選択する。
• 部品を加工する。
といったことを繰り返しながら進む(ドロ
一系 ツール だからこそ,わざわざこんな言
い方をして強調するのだ)。この部品の種類
も多いなら,道具の種類も多い。当然,道
具は セル ごとに違う0ちょっといじったく
らいで全貌がつかみきれるものではない。
ドローセルで使える道具のうち,いくつ
かについて解説しよう。
•ペン
折れ線または曲線を描く。マウスをタリ
ックすれば折れ線の頂点に,ドラッグすれ
ばべジェ曲線の制御点になる。ドラッグし
ている間,ベジェ曲線はマウスの動きにつ
れてくねくねと動く。これがけっこう楽し
ベジエ曲線
CANVAS PRO -68 K で自由曲線の登場する場面
はいくつかある。 ドロー セルでは,たとえば自
由曲線そのものを描くとき。またドローォブ
ジエク トを エンベロープ 変形するとき。テキス
トセルでは,ベースラインを変形して,文字の
曲がりくねった置き方をするのに使っている。
CANVAS PRO -68 K では自由曲線に ベジ:!: 曲線を
用いている。
ひとつのベジエ曲線を発生するためには,制
御点が4つ必要である。ここからがちょっとわ
かりにくいのだが,曲線が通るのは丨番目と4
番目の点だけで,2番目と3番目の点は通らな
い。この2つの制御点は,「曲線を自分のほうに
引き寄せる」働きをするものと考えていいだろ
1〇
どうしてこんな難しそうな話をするのかとい
うと , CANVAS PRO -68 K で自由曲線を操作する
際には,この4つの制御点を直接操作する必要
があるからである。別に理論など知らなくても,
しばらく使っているうちに操作感覚(結構楽し
い)はつかめるのだが,知っておくと操作法の
理解も早いことだろう,というわけでおせっか
い。
本文でも書いているが,操作法は極めて簡単。
適当な場所にマウスを持っていき,そこでマウ
スのポタンをネ甲してドラッグすればベジエ曲線
が出現する。何度も繰り返せば,次々とベジエ
曲線が接続していく。出来上がりはマウスのポ
タンを押した点を通る自由曲線になる。制御点
の数はできるだけ少なくしたほうが美しい曲線
になる。コツはすぐにつかめることだろう。
—度描いたベジエ曲線を修正するときも,曲
線をつつけば制御点が出現するので,それをマ
ウスでつかんでドラッグすれば曲線が面白いよ
うに動く。
百聞は一見にしかず,ぜひ一度触ってみるこ
とをお勧めする。思いどおりの曲線を描けるよ
うになるには少々時間が必要かもしれないが,
慣れると快感である。少ない手間で美しい曲線
を作れるベジヱ曲線は,ドロー系 ツールの 必携
アイテムといえるだろう。
特集ドロー系グラフィックツールの魅力 37
く,ベジヱ曲線を描いているだけでも鮑き
ない。折れ線と曲線を,モード切り替えな
どしないでごく自然につなぐことができる
というのが賢い。
•ポインタ
ドローオブジェクトを指定したり移動し
たりする。基本操作は編集したい点をクリ
ックすること。矩形領域をドラッグして囲
めば,領域内の点をすべて選択する。1点
だけ指定すれば,その点に付属するベジェ
曲線の制御点が現れる。制御点をマウスで
つかんでドラッグすれば,ベジェ曲線もそ
れにつれて動く。気に入った形になるまで
あれこれとドラッグしていればいい。くど
いようだが,いったん画面上に置いたあと
でも,修正を加えることができるのがドロ
一系 ツールの 強みなのである0
ほかにも, 0 PT .2 キーを押しながら制
御点をクリックすると,その制御点を含む
オブジェクト全体が選択される。そこでお
もむろに制御点をマウスでつかんでドラッ
グすれば,オブジェクト全体を動かすこと
ができる。
•長方形
長方形オブジェクトを作る。左上の座標
と右上の座標を指定する。長方形といって
も,プログラム上の扱いは4本の線分にす
ぎない0つまり,頂点をマウスでつかんで
ドラッグすれば,好きな形の四角形が作れ
CANVAS PRO -68 K には,いくつかの半角文字
のアウトラインフォントがついてくる。どれも
が「ポップな」フォントなので,英数字でロゴ
タイプを作るときにそれほど困ることはないで
あろう。付け加えておくと,このベクトルフォ
ントは , NEW PrintShop PRO -68 K に付属してい
るものと同じものである。
半角は文字の絶対数が少ない(アルファべッ
卜の数なんて漢字に比べたらものの数ではな
い)ので,いろいろなデザインのフォントが比
較的簡単に供給できる。それに対して全角フォ
ントを取り巻く状況は厳しい。漢字というのは
計算機にとって厄介なものなのである。数千字
にもおよび,しかもアルファベットよりはるか
に複雑な漢字のフォントに対して,種々のデザ
インのフォントを用意するのは苦しい。
とりあえず使えるのは内蔵 ROM の24ドットフ
ォント。これをただ拡大すると品質の点で見劣
りするので,一昔前のワープロでよく見られた
ような スムー ジングをかけている。本格的な 口
ゴを作るのにこんな貧弱な(失礼)フォントで
はだめだというので , CANVAS PRO -68 K では,
Z,sSTAFF PRO -68 K ver . 2.0 に付属しているアウ
トラインフォントを使えるようになっている。
Z ’ sSTAFF には明朝体とゴシック体の2種類のア
ウトラインフォントが付属している。これで当
る。
•円
円オブジェクトを作る。中心と半径を指
定する。やはりこれも4本のベジェ曲線が
つながっているものなので,あとから変形
することも可能。正多角形もある。
•回転
指定したオブジェクトを回転させる。回
転の中心と回転始角!:回転終角を指定する。
上下左右反転もある。
•エンベロープ変形
もっとも遊べてしまう道具がこれ。指定
したオブジェクト全体を包む大きさの長方
形を ェンベロープ とし,これに拡大縮小,
変形,ベジェ変形(縦変形と横変形とがあ
る)といった変形を加えることができる。
•パスク ローズ
耳慣れない名前だが,頻繁に使う。ペン
で描いた曲線(または折れ線)は1本の曲
線で,どう制御点を動かしても円や長方形
のように ループを作って はくれない。この
閉じていない曲線の端点をくっつけて閉曲
線にしてくれるのがこの道具である。この
処理をしておかないと,オブジェクトは面
として働いてくれない(色をつけることが
できない)。
•オブジェクト属性設定
オブジェクトの輪郭線の色や太さ,それ
にオブジヱクトが閉領域だった場合(そう
面は用が足りる。ただ,フォントのファイルは
巨大で,フロッピーでの使用はまず無理。ハー
ドデイスクがないとつらいところ。
また, Z ’ sSTAFF に付属しているのは第一水準
の漢字だけなので,第二水準の漢字を使いたい
場合は, Z , sW 0 RD JG に付属のフォントを持っ
てくる必要がある。
ほかにも CANVAS PRO -68 K で使えるフォント
には,「書体倶楽部」というのがあって,ゴシッ
ク体ゃ明朝体だけでなく,各種の軎体が用意さ
れている。この両者とも PC -980 I シリーズ用で
はあるが,フォントのデータは利用できる。ち
なみにこれらのフォントは当然ながら Z’sSTAFF
でも利用できる(そりゃそうだ,どれもツァイ
卜の製品だもの)。
ROM フォント I
Trad Jack
Sfflirl Gnmp N»ttse P
t ^ vnatf eus
Kalila flrlisi |;
:明朝体 ゴシック体
でない場合は上のパスクローズを使って閉
曲線にしておかないと色がつかない)は面
の色を決めることができる。色は,8色だ
けでなく,タイルパターンから選ぶことが
できる。さらに面に色をつける場合は,グ
ラデーシヨンまでかけることができる。
ちなみに色であるが, 8色と書いたのは
実は不正確である 。 CANVAS PRO -68
K は基本的には8色だが,グラフィック16
色モードで動作している。しかし残りの8
色も決して無駄にはなっていない。残りは
透明色に当てられている。つまり CANV
AS PRO -68 K の扱える色は不透明色8色,
透明色8色,の計16色なのだ。これは重ね
合わせのときに威力を発揮する 。 CANV
AS PRO -68 K では,セルどうしまたは才
ブジェクトどうしを,優先順位をつけて重
ね合わせることができる。このとき,上の
セルまたはオブジェクトに透明色が使って
あると,下に隠れたものが透けて見えるの
である。つまり,透明色と不透明色を使い
分ければ,マスキングの効果が出せるのだ。
*
道具についてはこれくらいでいいとして,
編集コマンドについても触れておかなくて
はなるまい。編集メニューからマウスをク
リックして(または OPT .1+ しかるべき
キーを押して),編集コマンドを呼ぶ。ドロ
ーセルだけでなく,ほかのセルでもこの編
集コマンドは使えるのだが,とりあえずド
口ー セルの話と思うことにする0
•カツ ト/コピー/ ぺ ースト
説明するまでもないだろう。これが簡単
にできるのも ドロー 系 ツールの 強みのひと
〇〇
•グループ化
ドローオブジェクトをいく つか 作ったと
しよう。それらをひとつのオブジェクトと
してまとめて扱いたくなる場面は必ず生じ
る。たとえば移動するとき。全部いっしよ
に動いてほしいものだ。しかし別々のオブ
ジェタトのままでは,なにかと厄介。そん
なときは,あらかじめグループ化しておく
のだ。元の別々のオブジェクトに戻したい
ときには,逆の動作をする「アングループ
化」も用意されている。
•オブジェクトの上下関係を変える
先ほども述べたよう.に , CANVAS PR
0-68 K は不透明色と透明色を使い分ける
ことができる。不透明なオブジェクトをか
ぶせて下のオブジェクトを隠すこともでき
る。それには,オブジェクトの優先順位を
コントロールす ることがどうしても必要に
なるわけだ。これはそのための編集 コマン
さまざまなフォント
38 Oh ! X 1991.2.
ド。指定したオブジェクトを一番上に置い
たり,一番下に置いたり,ひとつ上に置い
たり,ひとつ下に置いたりできる。
•複製
これまたドロー系の強み。指定したオブ
ジェクトを複製する。特においしいのが「多
重複製」というやつで,オブジェクトを一
瞬にして何枚も複製し,しかも等間隔で並
ベてくれる。
*
とまあ,こんなところだろう 。 CANV
AS PRO -68 K だとわかっていなかったら,
とてもグラフィック ツールの 解説とは思え
なかったことであろう。特にドロー系のツ
ールらしい部分をピックアップして紹介し
たつもりだ。
使用 レボー ト
それでは,実際にある程度使用したうえ
でのレポートに移ろう。もちろん,国内に
は比較対象になるようなソフトがほとんど
ない。こういったソフトが登場したこと自
体は十分に評価に価すると思うが,それで
もあえて,現時点で思いつく要望は残らず
書〈ことにしよう。
CANVAS P 闩〇— 68 K の道具選択
CANVAS PRO -68 K の編集はマウス
とキーボードを併用しながら進める。キー
ボードといっても,テキスト セルの 文字入
力に使うだけではない。よく使う編集コマ
ンド,たとえば「カット」や「ペースト」
などは,キーボードにも割り当てられてい
る。もちろんマウスだけでも編集コマンド
は使えるが,キーボードが併用できると,
いちいちマウスを画面上方に持ってい〈必
要がないので,素早い操作ができ,けっこ
う便利。はっきりいって,付属ワープロに
も欲しいくらいである(ちなみに Hyperw
ord はこの作法を採用している)。
Macintosh を使ったことのある方なら,
ブルダウン メニューの 中になにやらアルフ
ァ ベットが書いてあって,そのキーを押す
とマウスでそこをタリックしたのと同じ機
能が使用できるのをご存じだろう。あれと
似ている。
メニューはプルダウンにちよっと似てい
る力 ? ,ちょっと 違う。画面上端のメニュー
バーにマウスカーソルを 運んで目的の項目
でクリックすると,サブメニューがぽんと
開〈〇プルダウンメニューはここからドラ
ッグしてアイテムを選んでいたが , CAN
VAS PRO -68 K のメニューではドラッグ
しない。目的のアイテムのところでクリッ
クするのだ。するとその項目が選択され,
サブメニューもぱたんと閉じる。間違えた
ときは右タリックするか,またはサブメニ
ューの外側でクリックするかすればサブメ
ニュ ー は閉じる。
この メニュー形式の操作性は上々である。
プルダ、ウンメニューに勝るとも劣らないも
のがある。プルダウンメニューでは,ドラッ
グの途中で マウスの ボタンから指が離れて
しまって妙な動作をするという事故があり
がちだが,その心配はない。反面,メニュー
を閉じる動作が必要になるので,もしかす
るとうっとうしいかもしれない(うっとう
しいと思ったことはないが)。さてあなたな
らどちらを選ぶか。
ドロー系ソフトの使し、勝手
CANVAS PRO -68 K のボイントは1
にも2にもドロー系グラフィック ツールで
あるということだ〇が,ペイント系 ツール
を使ってきた人にとっては,かったるいと
いうのが正直な感想になると思う。確かに
使っていてある種のまだるっこしさはつき
まとラ0
ここで誤解^があっては困るのだが , CAN
VAS PRO -68 K それ自身の操作性は悪く
ない。変に数字を意識しなくても使えるし,
マニュアルな しでも大方の操作はできる。
しかし, ドロー 系 ツールは 必ず「手順」
というのを持ち,そのためにペイント系ツ
ールに対して少なからぬハンデを背負って
いることは否定できない。
ドロー系ツールで作った部品の持つメリ
ットと,部品を作るための手間とを天秤に
かけると,ドロー系にすべきかペイント系
にすべきかを選択できると思う。おそらく,
描く対象によって両者を使い分けることに
なるだろう。
簡単な図の類であれば,ドロー系を使う
のが断然有利である。特に CANVAS PR
0-68 K は文字も使える。線や文字の位置
を微調整するのもドロー系なら楽である。
速度につし、て
操作体系とは別の意味でも CANVAS P
RO -68 K はかったるい。処理速度が十分
だとはいいがたいのである。リアルモード
の描画が遅いのはある程度しかたないとし
ても,スケルトンモードの遅さはもう少し
なんとかすべきではなかったか。
むろん,簡単な図形のうちはそれほど気
にならない。が,ちょっと凝ったものを作
ろうとすると制御点がどんどん増え,編集
も描画も遅くなっていく。データディスク
についてくる干支や恐竜やトランプなどの
ドローォブジ ヱ タトを読み込んで編集して
みると,そのことを実感できる。アウトラ
インフォントの処理もけっこう重くなる。
複雑なものほど遅〈なるというのは,グ
ラフィ ックツールに とっては困りものであ
る。ちゃんとした絵というものは,往々に
して複雑な絵柄になるものだから,作業が
佳境に入ってからの速度にはシビアなもの
が要求される。
ペイント系のツールでは,絵柄が複雑だ
ろうと簡単だろうと,描画にかかる時間は
変わらない0ドロー系のツールでは,ある
程度遅くなるのは避けられないし,しかた
ないのだが, ユーザーにストレスを 与えて
しまうほど遅いものであっては困るのだ。
通常の絵を描くには,まだまだペイント
系の ツールの ほうが使いやすいといえる。
CANVAS PRO -68 K は,製図道具で描
いたような正? i 萑な直線や曲線にむしろ向い
ているといえ よう。
CANVAS PRO -68 K が遅いのは , CPU
が 10 MHz の68000だからだとは思いたくな
い。確かに, X 68000 の処理スピードという
のは今では決して速い部類ではない。特に
グラフィックを扱うときに弱さを露呈する
というのは否定できない。だが, X 68000 の
グラフ イ ックアプリケーシヨンが遅いのに
はそれだけでない,別の理由があると思う。
なに かにつ けてへ ビーデュー ティなのだ。
考えられるすべての機能を盛り込んだので
はないかと思わせるものがある。しかも処
理は生真面目にやっている。いつかも書い
た力' 場面によっては,「真面目」というの
はほめ言葉でもなんでもない。馬鹿正直な
処理は遅いだけであり,.誰も認めてくれは
しない。ューザーの知らないところでどん
なずるをしてもいいから,とにかく速度優
先で作ってほしいものだ。どうせ相手はプ
リンタなのだから,いっそのこと白黒に限
定するというのも手ではある (MacDraw
と差別化できなくなるかもしれないが)。
外部とのインタフェイスが弱いそ!
CANVAS PRO -68 K にはビットイメ
ージそのものを編集するペイントセルがあ
特集ドロー系グラフィックツ_ルの魅力 39
るが,これの操作性はそれほどほめられた
ものではない。そこで,この方面なら Z’s
STAFF などのペイント系ツールにお任せ
となる 。 CANVAS PRO -68 K は, Z’sST
AFF の画像ファイル ( ZIM ファイル)を
8色に変換してペイントセルに取り込むこ
とができる ( ZIM ファイルのほかに , GL
3フアイルや NEW PrintShop PRO -68 IC
のファイルを取り込むことも可能である)〇
CANVAS PRO -68 K と Z ’ sSTAFF は,
正反対の性格を持っているだけに,組み合
わせて使うとお互いの不足したところを補
い合う名コンビになる。……はずだったの
だが,これにはひとこといっておかなくて
は収まらないものがある。
なんなんだあの8色変換は。
いくらなんでもひどすぎないか。65536
色が泣く。要するに, RGB の最上位ビット
だけを残し,あとはバッサリ,なのである。
取り込んだ絵ははっきりいって悲惨である。
ペイントセルが,印刷したときの解像度
も粗く,ドロー系ツールの精神にマッチし
ていないことも考えると,あまり真剣にサ
ポートしたくないというのもわかるのだ力 5 ',
もっと自然に変換しようと思っても,ほん
のちょっとの手間ですむ。65536色モード
の画像を読み込むことはわかっているのだ
から,デイザ ( 8色のドットをうまく混ぜ
合わせて疑似的に中間色を出す仕掛け)を
かけて取り込むモードをつけてもバチは当
たるまい。
スキャナもサポートしているが,これも
同様。やはり最上位ビットのみしか見てい
ない。ただしスキャナの場合には抜け道が
ある。たとえばシャープのスキャナである
CZ -8 NS 1 の場合,スキャナのほうでデイ
ザをかけてくれる。スキャナがデイザをか
けるモードになっていれば , CANVAS P
RO -68 K に取り込んだあともそれほどひ
どい画面にならずにすむ。しかしこれはあ
くまで対症療法,賢い生活の知恵にすぎな
い。だいたい,こんなことはソフトのほう
で対処すべきことだと思う。
また,スキャナ機器との接続は RS -232
C のみで,パラレルボードは無視されてい
るようだ。、高価なパラレルボードを買った
人は泣〈に泣けない。いまどき,98ユーザ
一でも RS -232 C の転送速度で我慢できる
夢の(でもないけど)輪郭}由出
スキャナから画像をペイントセルに取り込む。
その画像から輪郭抽出してドローオブジェクト
を生成する機能はぜひとも欲しかったところ。
いまのところは,取り込んだ画像はペイントセ
ルに張り付いているだけ。それ以上の発展もな
にもない。
これをドローセルに持っていけるととてもあ
りがたい。そうなれば,手書きの下絵をスキャ
ナで取り込んでドローセルに移し,ド ローツー
ルならではの編集機能を存分に揮うことができ
る。色を変えたり,拡大縮小変形したり,思い
のまま。正直にいって, ドロー 系の ツー ルは,
いったん部品を作ってしまえば使いでがあるの
だが,部品を作るまでの段階がペイント系に比
ベて遥かに苦しい。たとえば線丨本引くにして
も,その手間は数倍である。
また,困ったことに,絵が複雑になってくる
と, CANVAS PRO -68 K の編集作業はどんどん重
くなってくる。部品の数が増えてくるのだから
当然なのだが,これまたペイント系に比べてポ
イントの低いところではある。この苦行(失ネし)
をある程度軽減してくれそうなのが輪郭抽出で
ある。決して不可能な処理ではない。事実,世
の中には取り込み画像から輪郭抽出してアウト
ライン データを 自動生成するソフト ウェア もあ
る。
僕©しいドロ ーツール
CANVAS PRO -68 K はポップアートツールだが,
僕が望むのは, CANVAS PRO -68 K が目指すとこ
ろとは少し違っていて,とにかく軽い作図ツー
ルである。仕事柄,簡単に立ち上げられて簡単
に作図のできるツールが欲しいのだ。たとえば,
MicroEMACS で原稿を書いていて,ちょっと図
を描く必要が出てきたときにそれを痛感する。
こんなときは,マウスプレーンで動作して簡単
に呼び出せるようなものが嬉しい。一般的には,
レポートや論文で使用する図版,企画書などで
必要なプレゼンテーション用のビジュアルなど
に利用できるといえばいいだろうか。結局 , M
ac Draw みたいなものになったりして。
カラーなどいらない,白黒で十分。カラー印
刷はなにかとコストのかかるもの。ポップアー
トツールとしての CANVAS PRO -68 K は優れてい
る。機能も多い。しかし,それよりも,おもい
っきり軽い常駐プログラムのほうが使える場合
もあるのだ。色数と機能の多さの分だけ重くな
っているのがなんとも惜しまれる。
それほど豪華なものはいらないのだが。
.t m'i ••な.,、:‘.い.〉.パ.厂… # * .
U3 :
I
卿•価
一'-- . 薇^^^^^#^
人は少ないというのに . 。
*
それから出力である。めぼしいプリンタ
には出力できるようになっている。しかし,
とりあえずはいっておこう。
レーザープリンタに対応しないのか?
ドットプリンタや熱転写プリンタの印刷
はだいぶ綺麗になってきた0しかしレーザ
ープリンタに比べればまだまだである〇レ
ーザープリンタの解像度は,おおよそ24ド
ットプリンタの2倍ある。したがって,印
刷の品質にも相当な差がある。その差は,
見ていて痛々しくなるほどである。僕は T
eX を使うようになってからこのことを痛
感した 。 CANVAS PRO -68 K は仮にも
ポップアートツールである。最高の品質の
出力が求められる。でなければ,デザイナー
には使えない。すくなくともドロー系のツ
ールは,レーザープリンタ程度の出力がで
きるようになるとさらにおいしく使えるの
に,と思、うわけ/ご。
確かに,レーザープリンタは誰もが持て
るものではない。最近はかなり安くなった
力 5 ',まだまだ手は出ない。それは認める。
シヤープだってまだ X 68000 対応のレーザ
ープリンタなど出してはいない。しかし,
それでも対応していて損はないのではある
まいか 0 また, PostScript * 1 などのスク
リプト言語に対応した形式での出力など,
できると嬉しいのだが……。
それから画像ファイルへの出力がない。
CANVAS PRO -68 K の目的は印刷にあ
る。だから画像を出力する必要がないとい
うのはわかる。それはそれでいい。しかし,
これはあくまで個人的な意見だが,ドロー
系ツールで作られた部品は紙の上だけでな
<いろいろな方面に出ていっていいものだ
と思う。印刷コマンドのほかにフルカラー
の画像ファイルを作るコマンドもあると,
新しい使い道が見つかりそうなものだ。た
とえばなにかのタイトル画面に使おうと思
ったら,イメージファイルの形で持ってお
けるととても便利だと思う。
総じて , CANVAS PRO -68 K は自己
完結の傾向が強い。外部とデータをやりと
りすることに消極的であるように思われる。
ひととおりは用意されているのだが,本当
にひととおりでしかない。
賢い付吉合い方
CANVAS PRO -68 K にはたくさんの
編集モードがある。編集にあたっては,こ
れらのモードをうまく切り替えながら作業
40 Oh! X 1991.2.
するのが贤い。それを忘れると,とんでも
なく重たいものになってしまう。たとえば,
ある程度作業が進むまでは他のセルを表示
しないで編集する,とかいったことを知っ
ていると,作業がかなり楽になる。本文で
は,そうしたことはわかっているものと思
って話を進めている。どうせ実際に使って
みないとわからないことでもあるし。
やっぱり資源を食ラのだ
メモリが 1 M バイトの X 68000 で CANV
AS PRO -68 K を動かすのはちょっとつら
い。 ASK 68 K も組み込めないかもしれない。
ついでにいうなら,アウトラインフォント
CANVAS PRO - 68K の編集速度はほめられたも
のではない。しかも,ドローオブジェクトを構
築していって好きな形を作るのはしんどい作業
である。よほど熟練しないと CANVAS PRO-68K
を使いこなせるようにはならないだろう。しか
し,そこはちゃんと解決策が用意されている。
なにも ユーザーがすべて 作る必要なんてないの
である。
CANVAS PRO-68K は部品を扱う ツールな ので
あるから,その部品をたくさん用意しておけば,
それほど手間をかけなくても絵は描けそうだと
いうことになる。標準でついてくるデータディ
スクには干支など,いくつかの ドロー オブジェ
クトが入っていて,それらを呼び出せば年賀状
のワンポイントくらいすぐ作れるわけだ。
CANVAS PRO-68K で読み込んですぐ使えるデ
—夕集の存在はありがたい。面倒な入力作業は
— 切なし。もちろん,たくさんあるドローオブ
ジェクトの中から好きなのを選んで組み合わせ
印刷例 CZ-8PC3 使用(原寸)
はファイルで持っているので,ハードディ
スタの使用を勧める。 RAM ディスクなら
もっといいが。特にアウトラインフォント
をフロッピーで使うのはかなりきついと思
う。文字を扱わないつもりであればいいが,
グラフィックツールがメモリを喰うのは常
識なので,拡張はしておくべきだろう。
結論
CANVAS PRO -68 K は,ポップアー
ト ツールと いうだけあって,楽しいイラス
トレ ー シヨンやポストカ ー ドなどを作るの
には向いている。基本的にマウスがあれば
ほとんどの操作はできる。いろいろな文字
ドローグラフィックデータ集
ることもできる。レイアウトを決めるのはユー
ザーなのだ。あとから文字を入れることだって
簡単。
標準でついてくるデータだけではどうしても
いろいろな用途には対応しきれないということ
で, CANVAS PRO-68K で使えるドローグラフィ
ックライブラリも用意された(別売)。すでに発
売されている。このグラフィックライブラリは
が使えるし,印刷もそこそこ美しい。
本職のデザイナーには周辺機器との入出
力関係で弱い点もある。また,ビジネス文
書(それも固めの)で使おうという人には
ちょっと向いていない0個人でイラストレ
ーシヨンを描〈人や,綺麗なハガキや案内
4犬をいろいろ f 乍る人に CANVAS PR 0-6
8 K はお勧めである,と結論しておこう。
*1PostScript は,レーザープリンタなどを制御
する言語のひとつ。フォントの設定はもちろん,
直線や曲線の描画などもサポートしている。スタ
ック型言語で,再帰呼び出しも可能である。 C 曲
線などといったフラクタル図形も数行の PostScript
のプログラムで描くことができる。 NeXT などでは,
画面表示にも Display PostScript が採用されている。
2巻構成になっている。第I巻が個人向けのデ
一夕集,第2巻がビジネス向けのデータ集とい
うことになっている。定価はいずれも8,800円
(税別)。
収録されている絵柄は比較的真面目なものが
多い0本当に 「イラストレーション」 といった
感じの絵柄である。まあ,変にウヶを狙ったも
のだと使い回しがきかないだろう。
(年賀状)このデータ集には,時候のあいさつ
に使うものがいくつか入っている。毛筆体の「賀
正」もそのひとつ。干支を入れてしまえば立派
な年賀状だ。もっと凝った台詞を入れたいとき
は,テキストセルで作って入れれば完璧だ。
(暑中見舞い)暑中見舞いの決まり文句も毛筆
体で入っていた。あとはこれに夏の風物をみつ
くろってやれば暑中見舞いのできあがり。
(その他)クリスマス関係のもあるが,もう過
ぎてしまったな。そうそう,ノてレンタインデー
のもあった。これはまだ間に合うぞ(いったい
誰が使うんだ……)。
POP
フォ
ADDRESS
ABCDEFGHIJK
LMNOPQR5TU
VWXYZ
atcJefgkijklmnopcjrstuvwxyi
特集ドロー系グラフィックツールの魅力 41
3 D 倶楽部は,1年ほど前に紹介した,
ツァイトの 3 D ポリゴンモデリング&レン
ダリングシステムである 「 Z’sTRIPHON
Y DIGITAL CRAFT 」 のデータ集であ
る。制作の大変な 3 D データが多数用意さ
れていて,ユーザーの負担を減らすように
なっている。
3 D 倶楽部は「リビング編」と「ダイニ
ングキッチン編」の2つがすでに発売され
ていて,以後,「地図編」「プライベートルー
ム編」と続く 〇
「リビング編」と「ダイニングキッチン編」
は,その名のとおり,多くの種類の家具の
3 D データを用意してある。部屋のデータ
も用意してあるので, Z ’ sTRIPHONY を
起動して部屋のデータを呼び出し,続いて
家具のデータを次々に呼び出して部屋の中
に配置するだけで,すぐにでもインテリア
デザインに利用することができるようにな
っている。適当に構図を決めてレンダリン
グすれば部屋の完成予想図が手軽に作れる。
CG の生命はデータにあり
コンピュータグラフィックの作品の出来
栄えを決めるものは何であるかご存じだろ
うか。高度なレンダリングアルゴリズム?
そうではない。
それはデータである。少なくとも僕はそ
う理解している。データというのは,いう
までもない力 ? ,物体の形状であり,ポリゴ
ンの色や属性であり,質感を表すパラメー
夕であり,マッピングであり,時には視点
の座標にまで及ぶ。ューザーがいじれる範
囲のものすべてが,作品の成否を決める鍵
を握っているのだ。
むろん,描画 ァルゴリズム も重要な役割
を 演じているのだが,最終的にはデ ザ イナ
一の センスに かかっている。 リアルなレン
ダリングを可能にしたといううたい文句で
CG システムを 発表しても,その サンプル
が貧弱なものだったら,誰が使ってみたい
と思うだろう 0 ユーザーにアピールす るた
めには,そのへんのことが実は重要なのだ。
これは 3 D コンピュータ グラフィックだけ
でなく, 2 D グラフィック ツール やその他
のさまざまな ツールについて 当てはまるこ
とだと思う。サンプルを充実させるのは成
Z’sTRIPHONY DIGITAL CRAFT データ集
ボ U ゴンデータ 「 3D 倶楽部 J
Tan Akihiko
丹明彦
功するための重要なファクターのひとつで
はあるまいか。
ツ ァイトはデータライブラリの重要性を
よく承知しているようだ(この 3 D 倶楽部
も,そうした思想の表れと見ることができ
ょう)。
まず扱えるデータはいろいろな形式でフ
ァイルに保存しておける 0 たとえば Z’sST
AFF にしても, ZIM ファイルの形式はひ
と通りではない。圧縮/非圧縮あり,矩形/自
由形状ありといったぐあいだ。
次に,アウトラインフォントを多数用意
している。 Z ’ sSTAFF には第1水準のゴ
シック体および明朝体のアウトラインフオン
卜が付属しているし,最近発売された「書
体倶楽部」は毛筆体などのフォントを集め
たものだ。
そして,これが一番重要な点なのだが,
これらのデータは,ソフトを問わず,いや
それどころか機種すらも問わず,自由に利
用できるのだ。 ZIM ファイルは Z’sTRIP
HONY や Z’sWORD JG で取り扱えるし,
アウトラインフォントは Z ’ sSTAFF や Z’s
WORD JG , そして Z ’ sTRIPHONY のど
れでも使える。そして, PC -9801 シリー
ズでも同様に使えるのである。そのために
使い勝手が多少落ちている嫌いはあるもの
の,この方針は立派である。
データは使い回しのきくような形式にし
ておき,できる限り共有化する。当たり前
のことのようでありながら,それすらも守
れていないソフトウェアのどれほど多いこ
とか。
ユーザー 待望の データ 集
しかし,非常に重要な要素であるコンビ
ュータグラフィックのデータ作り(モデリ
ング)は,非常に大変な作業であるのもま
た事実。人は 3 D モデラーを前にして,必
ず一度は石になる。パッケージに印刷され
ている滎華なサンプルと,自分の作ったガ
ラクタとの間のギャップに溜息をつく。だ
がそれでいいのだ。誰でもそこから始める
のだ。そして, いつかは モデラーを手足の
ように操り,力 1 つての目標であったパッケ
ージのサンプルを超える作品を作るのであ
る。
今回紹介する 3 D 倶楽部は,まだ溜息レ
ベルのユーザーにとっ て福音といえるもの
である。もちろん使いこなしを究めた ユー
ザーにとってもおいしい。ともすれば複雑
になりがちな 3 次元のポリゴンのデータを
制作する手間を省き,またそこまで Z’sT
RIPHONY の操作に習熟する余裕のない
ユーザー にも気軽に使えるデータ集である。
氺
机や椅子を始めとして,ひと通りの家具
は揃っている。種類も豊富だ。
この春進学や就職のために上京してくる
人,フジテレビの恋愛ドラマによく出てく
るような ワンルームマンシヨンの 生活に憧
れている人,そんな人はこの 3 D 倶楽部で
おしやれな都会生活の設計でもなさっては
いかがだろう。……と,こういうと茶化し
ているように聞こえるかもしれない。実は
そのとおりである0レイアウトに悩むほど
広い部屋に住める人なんてそう多くはない
だろう。
むしろ,もっと大人のユーザーに勧める
べきかもしれない。結婚して新居を構える
という幸せもの,また家を新築した人,引っ
越す人,単に部屋の模様がえをする人でも
いい。 実際に家具を配置する前に,まず Z’s
TRIPHONY と 3D 倶楽部でテストする,
という使い方ができる。
しかし大事なものが欠けている。 X68000
だ。僕のような人間は,部屋を設計する
のにまず X68000 を中心に考える。快適な
作業場を作るための配置は,そのあとからつ
いてくる。どうせなら X68000 のある部屋
を設計したいものだ。というわけで X68000
の 3 D データ もよろしく。
•3D 倶楽部各 9,800 円(税別)
ツァイト ©03(3299)0461
42 Oh! X 1991.2.
特集 1 グラフィックの“実験的”手法
Z’sSTAFF 支援ツール Z ’ s-EX
1月号付録ディスクの Z’s — EX は,裏画面のサボート,3次
元変形マッピングなど,さまざまな拡張機能を実現します。あ
なたの Z ’ sSTAFF はも5パワーアップされたでしよ5か。
今回はそこで盛り込まれた機能の解説を行いましよろ〇
Tan Akihiko 丹明彦
先月号のディスタで配布した Z’sSTAF
F 支援 ツールである Z ’ s - EX の,重い重い
技術解説をお届けする,確かにプログラム
も重いが,解説はもっと重いのだ c お覚悟を。
基礎知識編
Z ’ s-EX は, Z’sSTAFF PRO -68 K (以
下 Z ’ sSTAFF ) の作業に割り込んで,便
利な機能を使うようになっている。実は,
これはとても楽で,ずるくて,しかし極め
て有用な手口である。なぜなら,基礎とな
る グラフイックツールを 作る必要はないか
らである。1から作らずに好きな機能を追
加できるというわけである。 Z’sSTAFF
の惯れた環境から離れずにすむというのも
メリットだ。
Z ’ sSTAFF を&張するうえで, Z’sSTA
FF の動作にはいくつか押さえておかねば
ならぬことがある。 Z ’ sSTAFF は,アプ
リケーシヨンとしてはかなり資源を赘沢に
使っているほうで,およそ音源関係以外の
あらゆる資源を使っているようである。テ
キスト画面までしっかりと徴用していて,
printf () すら使えない。
以下で述べていることは,今回のプログ
ラムを作る上の下敷きにさせていただいた
PICFILER (電脳倶楽部掲載)から大部
分の情報を得ている。
待避画面
Z ’ sSTAFF は,ご存じのとおりウイン
ドウが山ほど開くシステムである。どのく
らい開くかというと,スクリーンを覆いつ
<してもまだ開けるくらい開く。
さて,ウインドウシステムで頭の痛い問
題は,ウインドウを閉じたとき,または移
動したときに,そのウインドウの下にあっ
たはずの画面をどうやって復活させるか,
ということであろう。ウィンドウを消した
らその跡は真っ黒だった,というのではウ
イン ドウ システムの 意味がない0
まず思いつくのが,ウィンドウ1枚を開
くごとに,その下にあった画面を記憶する
という方法だ。ところがこれはだめ。ウィ
ンドウが1枚しか開けないシステムならそ
れでもよいが ( PC -9801 用の Z’sSTAFF
では確かウィンドウは1枚だったが……),
同時に2枚以上なら破綻する可能性がある。
次のシチユエーシヨンを想像してみてもら
いたい0
1) ウインドウ甲を開く。ウインドウ甲の
待避領域にはその部分の G - RAM の内容
が入る。
2) ウィンドウ乙を開き,ウィンドウ甲と
一部が重なるように移動する。ウィンドウ
乙の侍避領域にはその部分の G - RAM の
内容,すなわちそこにあった画面とウィン
ドウ甲の一部が入る。
3) ウィンドウ乙を上にする。
4) ウインドウ甲を閉じる。ウインドウ甲
が消えた跡には,もとの画面を侍避領域か
ら読みだして G - RAM に書き戻しておく
が,ウインドウ乙のほうが上にあるのだか
ら,ウィンドウ乙と引っ掛かる部分にまで
書いてはいけない。
5) ウィンドウ乙を閉じる。侍避領域には,
ウインドウ甲の一部が
が入っていたため,そ
れまで G - RAM に書
き戻されてしまい,画
面にはウインドウ甲の
一部がごみとなって残
されることになる。
もちろん,もう少し
真面目に処理すればこ
のようなことは起こら
ないのであるが,ただ
でさえ重いウィンドウ
システムの 処理がもっ
ともっと重くなる。 2
枚ならまだそれでもい
いが,これが何十枚ともなると想像するだ
けでも恐ろしい。
それに,こちらのほうがもっと深刻なの
だが,画面を覆いつくしてもまだ余るほど
のウィンドウ面積分の侍避領域が G-RA
M の容量を超えてしまうのは当然のことな
のである。だから,いっそのこと待避画面
をどこかに1画面分気前よ〈取ってしまう
のがお徳用なのだ。そうすれば,ウィンド
ウを閉じたときの書き戻しはその待避領域
から正直に読んでくればすむ。そのウィン
ドウと重なっているウインドウ(こういう
のをオーバーラップしているという)を書
き直すだけの手間ですむ。
この侍避領域には, G - RAM と同じ512
K バイトが必要である。しかし,そんな大
きさの配列を取るのは,当時 (1987 年)の
ユーザー状況を見れば犯罪に等しかったと
思う。メインメモリが1 M バイトが圧倒的
多数派だった頃のことである。
そこで,どの X 68000 も持っている広大
な領域, G - RAM と同じ 512 K バイトの領
域,すなわちテキスト VRAM がまるごと
待避領域に当てられた。線を引いたりペイ
ントしたりといった動作は,この待避領域
と G-RAM (当然ウィンドウが表示され
ていない部分のみ)の両方に対して加えら
れる。また,両方に描画しないと本当に描
袠画面を3 D 変形してマツビング
特集 Z ’ sSTAFF 支援ツール Z ’ s-EX 43
DIFFERENTIAL
いたことにはならない。たとえば G — RA
M だけに描いたとしたら,自分では描いた
つもりでも,ウィンドウを動かしたり消し
たりしたときにボロが出る。もうひとつ,
細かい話だが,テキスト VRAM は,単な
る配列として使う(当然表示もしない)の
で,テキスト VRAM の同時アクセスモー
ドをキャンセルしておくこと0拡張プログ
ラムを作る際には,この2つのことに注意
されたい。
こうしてくれたおかげで,今回の Z ’ s-E
X のウィンドウも待避領域を取ることなく
実現できた。これがメインメモリの配列だ
ったら問題は難しくなっていたことだろう。
テキスト VRAM のアドレスは決まってい
る力 5 ',配列のアドレスはわからないからだ0
蛇足ながら付け加えておく。はじめから
テキスト VRAM にウインドウを開けば,
そんな巨大な侍避領域なんていらなくなる,
と思った人は,非常に鋭い。確かに原理的
にはそのとおり。テキストにウインドウを
開けば,どこで開こうが閉じようが , G —
RAM は一切傷つかない。ウィンドウどう
しが才ーバーラップしている場合の処理だ
け考えておけばいいことになる。
しかし,こと Z’sSTAFF の場合はそう
うまくは いかない 0 つまり, パレット ウイ
ンドウはどうするの?というわけ。あの
極彩色のウィンドウを表現するためには,
どうしても G-RAM が必要なのだ。テキ
スト VRAM を侍避領域に使うというのは,
さんざん悩んだうえでの選択だったのだろ
う。ま,どちらにしてもテキスト VRAM
FLARE
をウインドウ表示に使うか侍避領域に使う
か,の差で使用する資源に変わりはない。
マスキング
Z ’ sSTAFF は,画面の任意の領域にマ
スタをかけてその下の画面を保護すること
ができる。マスク領域には一切の描画がで
きない。
Z ’ sSTAFF をお使いの方はご存じであ
ろうが,マスクをかけた領域は青くゆっく
りと点滅している。これは割り込みを使っ
て細か〈パレットを変えることで実現して
いる。
ここで問題になるのは,いったいどの色
のパ レッ トを変えているのかということ。
Z ’ sSTAFF を起動するときにスペース
キーを押していると, G - RAM を保存し
たまま起動するのだが,その際輝度ビット
( 1 ピクセルは 16 ビット =0 〜 65535 で表現
されるが,その最下位ビットが輝度ビット
に割り当てられている)が立っているピク
セルにマスクをかけるようになっている。
しかし,輝度ビットの立っているピクセ
ルだけの色を変えるのは難しい。単純計算
でも 32768 色あるのだ。ところで, X 68000
は 65536 色モードでもパレットは変えられ
る力 5 ',それは制限つきで,ひとつのパレッ
卜を変えると同時に 256 色が変わってしま
うのだ。このへんはややこしい。
代表として,パレットコード$0001のパ
レットを変えている。しかし,そのために
は G - RAM の中で輝度ビットの立ってい
るすべてのピクセルのパレットコードを$0
001に変えねばならない。しかしうかつに
それをやると,今度はマスクを取り去った
ときに保護されていた絵が出てくれないと
いうことにもなる0ちなみに,ハ。レットコー
卜''$0001 とは, 黒の輝度ビットを立てたの
と同じこと。その輝度ビットを取り去れば,
マスク部分は真っ黒になってしまうことに
なる。
そこで,またテキスト VRAM の出番で
ある0テキスト VRAM のほうでは,マス
クに対応する部分に輝度ビットを立てるだ
けで,マスク以外の部分には手をつけない。
マスクを取り去るときは,テキスト VRA
M から読み出して書き戻せばよい。
マウスカーソル
待避画面とマスキングからわかるように,
Z’sSTAFF では G-RAM は表示にのみ使
われていて,実際の作業はテキスト VRA
M で行われていると考えるのが無難である。
となると,玉突き式に新たな問題が浮上
する 0 マウスカーソル である。
通常のシステムでは, マウスカーソルは
テキスト VRAM を使って表示している。
ところがそのテキスト VRAM は, Z’sST
AFF では待避画面に使われてしまってい
る。1バイトたりとも余っていない。そこ
で今度はスプライトが浮上してくることに
なる。
Z’sSTAFF を 使ったあとに適当な スプ
ライトエディタを 立ち上げれば, スプライ
卜に定義されている パターンが わかる。 マ
ウスカーソルはパターン コード 0のスプラ
イ トに定義されている。 マウスカーソルの
表示 ルーチンを フックして, テキス ト VR
AM に カーソルを 書き込むかわりに スプラ
イ トを表示しているのだろう。 Z’sSTAF
卩力 ? 768父512 ドッ トモー ドでは 動作し ない
(CRT コントローラに 悪いこと を すれば,
768 X 512 ドッ トモー ドでも 65536 色の表示
はできる)というのは,実はこの スプラ イ
卜がネックになっているからである。
また Z’sSTAFF では,なにか時間のか
かる作業をしている と きは マウスカーソル
が腕時計の形になる。それもパターンコー
ド〇のスプライトのパターンを書き換えて
いるだけ。
ところで, いくつか ある メニュー のうち,
G-RAM を 使っていないものがひとつあ
る。画像取り込みがそれ。この メニュー だ
けは,マウス カーソルと 同様にスプライト
を 使っているようだ。 イメージュニットを
使うだけに,ウィンドウを避けて取り込む
ということができないせいであろう。
キー入力
メニューバー(「ファイル」「パレット」
「ペン」……と書いてある細長い棒)を消
したり出したりするのにはスペースキーを
使う。このスペースキーの読み取りには I
OCS コールの B BITSNS (IOCS コール
44 Oh! X 1991.2.
番号 $04) を使っている。 Z ’ sSTAFF はこ
の IOCS コールを頻繁に行っている。
そこで,あるキーを押したときに拡張ル
ーチンが起動するように設定したい場合は,
この IOCS コールの ベクタを書き換えると
いう方法でキー入力を楚い取ることができ
る。むろん,その起動キーでなかった場合
は, Z ’ sSTAFF に戻り,そのキー入力を
伝えてやる必要がある。そうでないと,ス
ペース キーが効かなくなってしまうからで
ある。
Z ’ sSTAFF でキー入力をする場面はい
くつかある。たとえば文字入力がそのひと
つだが,日本語 FEP の ASK 68 K は幸いに
して B _ BITSNS を呼んではいないような
ので,心配することはない。
そこで Z ’ s — EX の制作
以上のことを念頭に置きつつ, Z ’ s-EX
を制作した。以下は各プログラムの解説で
ある。プログラムリストは大きすぎてちよ
っと誌面には敝せられないが,すべて先月
号の付録ディスクに ( DISK 2) に収録さ
れているので各自参照してほしい。
PICFILE R は常駐プログラムであった
が, Z ’ s - EX はそうしなかった。 Z’sSTA
FF をチャイルドプロセスとして呼び出す,
ごく普通の実行ファイルである0どうして
こうなったかというと,ひとつは常駐解除
謹賀新年 PRO - S 日 K の□旧 K 2 に
収録されている Zs - EX の内容
Zs_EX
— mapicon.dat
— Zs . EX.x
— SOURCE
—— window.c
—— effect.c
— picfilerx
—— mapping.c
—— • zs.c
—— rfbuild.c
—— startup.s
—— xpic.s
—— transter.s
— rev.s
— compile.bat
—— makefile
—— rfbuild.x
を忘れたときに思わぬトラブルの種になる
ということ。もうひとつは,常駐プログラ
ムを書くのはそれなりに面倒だったからで
ある。
Z’s-EX は, Z’sSTAFF の待避画面と
は別にもう 1 枚の襄画面を取る。 512K バ
イトの配列をメインメモリに取るなどとい
う,なかなか凶悪なことをしている。この
ためメインメモリ 1M バイトの X68000 での
実行はほぼ絶望的である(とはいっても,
もともと 1M バイトで Z’sSTAFF を動かす
のはかなりきついものだった)。
ウィンドウマネージャもど^?
- winaow.c -
Z’s-EX は,同時に 1 枚のウィンドウし
か開かないが,とりあえずウインドウシス
テムである。
「使い回す可能性があるシステムのコーデ
ィングは1回はやり直したほうがいい」と
いう鉄則はやはり真実だったょうで,作っ
たあとで振り返ると,ここはこうすればよ
かった,あそこはああすればよかった,と
いった後悔が渦巻いている。ウィンドウマ
ネージャを作った段階では完璧だと思って
いた力す,そのあとを作っているうちにあち
らこちらと矛盾が出て,そのたびに対症療
法を繰り返した。その結果,少々汚いプロ
グラムになっているのだが,ちょっと見に
はそれほど汚くはない。
さて,各ウインドウの上にはいくつかの
アイテムが並んでいる。それをマウスで指
図1ウインドウマネージャのアイテム管理情報
定する。というだけなら簡単だが,操作性
や見た目のよさを重視するならば,ことは
そう単純にはいかない。
• マウス カーソルをアイテムの上に持って
きたとき,表示が反転するアイテムとしな
いアイテムがある。反転しないアイテムの
代表は,タイトルバーである0ここをつか
んでドラッグするとウインドウを動かせる。
いちいち反転するとうっとうしい。
• マウスボタンを押したら即時呼び出し元
に復帰するべきアイテムとボタンを離すま
で待つべきアイテムがある。即時復帰する
アイテムの代表は, PICFILER のファイ
ルウインドウ。左ボタンまたは右ボタンで
スクロールす るのだが,これは押しっぱな
しにしたときには連続してスクロールする
のが望ましい。
以上のようなことを考え合わせて,ウイ
ンドウのアイテム管理情報は図1のように
してある。プログラムリストの解読をする
際には,参考になることだろう。
この情報は,新しいウインドウを開くた
びに更新される。グローバル変数にいちい
ち代入しなぉすなどという間抜けなことを
している。まとめて構造体で持ってぉかな
かったのは失敗だったのだが,今となって
は手遅れ。
ともかく,ウインドウマネージャもどき
は,この情報を参照しながら,マウスカー
ソルの座標を読み取り,必要ならアイテム
を反転させて,マウスボタンを押されたら
それなりの処置をとる。そして,押された
typedef ITEM short[l0]; . ひとつのアイテムにつき 10 ワードの属性を要する
int win _ xO, win_yO;. ウィンドウ左上の座標
int win_x, win__y; . ウインドウのサイズ
int win_n; . アイテムの数
ITEM win_i[win_n]; . 各アイテムの情報
i 番目のアイテムの情報の内訳 (0 彡 i 彡 win _ n - l )
win _ i [ i ][ 0 ]
最下位ビットが丨(つまり奇数)なら,
このアイテムの上にマウスカーソルがあるときに表示が反転する。
特に,この値が 255 のときはウインドウクローズ,
254のときはウィンドウ移動としておく (特に意味はない)。
win — i [ i ][ I ]
この値が0のときはマウスのポタンが押されたら即時復帰する。
I のときはボタンを離すまで待つ。
(win _ I [ { ][ 2 ], win — i [ i ][ 3 ]) - ( win _ i [ i ][ 4 ], win _ i [ i ][ 5 ])
マウスカーソルがこのレクタングルで示される領域の中にあれば,
このアイテムが選択されているとみなす 0
( win — i [ i ][ 6 ], win _ i C i ][ 7 ]) — ( win _ i [ i ][ 8 ], win — i [ i ][ 9 ])
アイテムが選択されているとき,表示を反転させる領域を示すレクタングル。
win_i [ i ][0]が偶数(反転しない)の場合は意味を持たない。
特集 Z ’ sSTAFF 支援 ツール Z ' s-EX 45
ボタンの状態とアイテムの番号を戻り値と
して呼び出し元のルーチンに返す。
ウィンドウの移動については專用のサブ
ルーチンを持っている。動かす前のウイン
ドウをテキスト VRAM の内容で塗り潰し
て,新しい位置にウィンドウを表示しなお
すという方法は間抜けなので,できる限り
ブロック転送を使っている(この部分はア
センブラ)。
ウインドウの クローズは アセンブラで 書
いた転送ルーチンを呼んでいるだけ。
ほかに,ちょっと重大そうな処理に関し
ては実行する前に「本当にいいか」と確認
を求めさせたい場合も出てくる(うっとう
しいから不要だという意見もある。確かに
いえてる )0 そのサブルーチンもウインド
ウ関係に含めている。実は,この確認ウィ
ンドウもウインドウマネージャで処理して
いるのだ。
文字表示は12ドットとしている。シング
ルウィンドウなのだから文字を小さくして
もたいしてメリットはないのだが,ウイン
ドウは小さくまとまっているのが好きなも
ので,あえて16ドットを使わなかった。こ
こでは BASIC ライブラリの symbol () 関
数を使うという真似をしている。だから実
は何ドットの文字でも手間はたいして変わ
らない。テキスト画面が使えないという時
点で,そもそも printf () に逃げることが
不可能になっていたのだから。
PICFILE 闩
- picffler.c -
プログラムは長めだが,たいしたことは
していない〇 pic フアイルのロー ド/セーブ
にしても,オリジナルの xpic . s のルーチン
を呼んでいるだけである。ただし, xpic.s
のうち,スーパーバイザモードに入る/スー
パーバイザ モー ドから抜けるという部分は
図 2 マッピング座標系
図版は CANVAS PRO-68K で作成
取り除いてある。これは, Z ’ S-EX がすで
にス ー パ ー バ イザモードで 走っ ている から
である。
ほかに気をつかったところといえば,フ
アイル名をキーボードから入力させるのに,
やはり scanf () も使えないので,自前で文
字列入カルーチンを作ったことと,拡張子
を強制的に“ . pic ” にしたことくらいであ
る0ファイルウインドウにしても,デイレ
クトリと“ *. pic ” のファイルしか表示しな
い。これはことによると迷惑だったかもし
れない。
マスキングの ロード/セーブに 関しては,
まだサポートしていない。
ALTERNATE SCREEN
- zjc -
裏画面と表画面の切り替えを行う。処理
の中身は単純な転送である。つまり,裏画
面の配列の中身と侍避画面(テキスト VR
AM ) の中身を入れ替える。 G-RAM に
も一緒に転送している。ただし,マスキン
グ部分(輝度ビットが立っている部分)に
ついては, G-RAM にはそのままでは転
送しないで,パレットコードを$0001に強
制的に変更してから転送している。
MAP
- map.c.transfer.s -
裏画面を1枚の長方形に見立て,表画面
に任意の位置•角度で張りつける。 Z’sST
AFF には矩形領域の自由変形というのが
あるが,これはそれとは少々異なる。あく
まで3次元空間内に琪画面を置いたと考え
ているので,裏画面には遠近感がついてい
るはずである。
この処理は,3次元コンピュータグラフ
イツ クでいえばテクスチャマッビングに相
当する c ただ,アルゴリズムは多少異なる。
一般のマッビングには透視逆変換が必要な
のだが,それと同じことを,別の方法で実
現している。
長方形の枠(反転したラインで表示する)
を移動/回転させ(マウスで押したアイコ
ンに対応した動きをさせる),位置を決め
たら本処理に入る。
処理はややこしいので,粗筋をまず述べ
る。
1) まずソリッドスキヤンコンバージョン
で,画面上の長方形の中にあるピクセルを
ピックアップする。そのピクセルの座標を
p ( x , y ) とする(ピクセル ( x , y ) にマスキ
ングがかかっていたなら,処理をスキップ
し,次のピクセルの処理に移る)。
2) 次に,ピクセル ( x , y ) が裏画面のどの
ピクセルに対応するかを求める。この座標
を ( u , v ) とする(ピクセル ( u , v ) にマスキン
グがかかっていた場合も,処理をスキップ
する)。
3) ピクセル ( u , v ) の色をピクセル ( x , y )
に書き込む。
これを繰り返すだけなのだが,このなか
でどこが面倒なのかというと,なんといっ
ても 2) の座標変換の部分である(図2)。
もともとは長方形であった裏画面は,作
業画面のなかでは変形している。作業画面
という「窓」を通して見える3次元空間を
考える。そこに裏画面を浮かべているのだ,
と思うことにしよう。
座標変換処理の第1段階として,ピクセ
ルに対応する3次元空間内での位置を知る。
これは,裏画面の長方形を含む平面の方程
式と,視点から窓の中の一点(ピクセル)
へ伸ばした直線の交点を求めればよい。視
点は, Z ’ s - EX を使ううえでは特に意識す
る必要はないが,図3のように固定してあ
る0視点を決めれば,あとはレイトレーシ
ングと同じ要領で視線を発生させ,平面と
の交点を求める。こうして求めた平面上の
座標を ( xi , yi , zi ) としよう。
第2段階として,上で求めた座標を裏画
面の実際の座標系に変換する。裏画面の位
置と角度を決定した時点で,裏画面の四隅
の (3 次元空間内の)座標はわかっている。
したがって, ( xi , yi , zi ) が長方形の中の
どのあたりにあるかは,簡単な内分比の計
算で求めることができる。
以上のことを図4にまとめてある。ただ
し図4の式はあくまで原理的なもので,実
際に C でコーディングするときはもっと効
率的にするためにいろいろと姑息なことを
している。ただ,一番大事なテクニックで
あるはずの整数化を怠っていたりする(反
(511,511)
(511,511)
作業画面
裏画面
46 Oh! X 1991.2.
省 )。
なぉ,裏画面の位置はいっでも初期化で
きる。初期化すると,表の作業画面と裏画
面がぴったりと重なる格好になる。このと
きに限り,遅い座標変換を使わずに,直接
転送するようにしている。ここはアセンブ
ラで書いてあるので,そこそこの速度は出
ている。これは画面合成に多用している。
MASK PAINT
- zs.c^pev.s -
これは素晴らしい手抜きをしている 。I
0 CS コールの ペイン トルー チンを使って
カラーコード $0001で ペイント している。
ただ,これだけではテキスト VRAM 上の
待避画面にマスク情報が伝わらないので,
メインメニューに 戻るときに G — RAM 全
体をサーチし, カラーコードが $0001 のピ
ク セルに 対応する待避画面の ピクセルの 輝
度ビットを立てるようにしている。マスキ
ング ペイ ント から メイ ン メニューに 戻ると
きに1〜2秒間マウスカーソルが時計マー
クになるのはこのためである。
EFFECTC 1] MONOTONE
- effect.c, rev.s -
ピクセルの色成分を R , G , B としたとき,
そのピクセルの輝度は,
M =(0. 11 x B +0.30 x R +0.59 x G )
で与えられる。青,赤,緑の色成分は等価
ではない。目に自然な輝度を求めるために
図3視点の座標系
は単なる平均を取ってもだめで,この式の
ように重みをつける必要がある。実数を使
うのはいやだったので,
M =(28 x B +77 x R +151 x G )/256
と,8ビットのゲタをはかせて計算してい
る。これにより,輝度 M に〇から31の値が
得られる。それをいちいちシフトしてグレ
ースケールのカラーコードを{乍ってもいい
のだが,たかだか32個なのだから,テープ
ルにした。テーブルは呼び出し元 ( C のプ
ログラム側)で用意し,その先頭アドレス
をアセンブラのプログラムに渡すようにし
ている。したがって,テーブルを作り変え
れば,セピア調変換も可能である。
テーブルを用意するという考え方は,本
誌1990年10月号の X 68000 マシン語プログ
ラミングからもらってきた(テーブルを使
うくらいのことを自分で思いつかなかった
というのがそもそも問題なのだが)。
EFFECTS RANDOM FRACTAL
- efl^t.c -
本誌1990年9月号のグラフイック特集で
紹介した,自然物の表現に便利なランダム
•フラクタル処理も組み込んでみた。まっ
たく同じ処理をしているが,処理を整数化
して少し速くなったことと, ランダム•フ
ラクタル格子を生成する処理を別プログラ
ム ( rfbuild . x ) にして独立させたという
ところが違うといえば違う。
高速化したぶんにはなんの迷惑もかから
ないが,ランダム•フラクタル格子の初期
化が Z ’ s - EX 本体から行えないというのは
少々まずいかもしれない。なぜなら,毎回
同じパターンが出てくるからだ。変形の強
さなどのパラメータは変えられるようにし
てはあるが,パターンまでは変えられない。
ランダム • フラクタル格子は先月も説明し
たとおり,別のデータフアイル rf.dat にな
っている。したがって,パターンを変えた
いときは, rfbuild.x に別のパラメータを
指定して rf.dat を作り直せばいいのだが,
Z ’ s - EX を抜けなくてはならないというの
が間抜けである。なにぶん一瞬で実行が終
わるプログラムではないので, Z ’ s - EX の
中に組み込むのをやめてしまったというの
が真相ではある。
EFFECT[3]:FLA 闩 E
- e'fWDt.c -
フレア処理は,画面の一部を光源に見立
て,その周囲を淡〈光らせる。実は,フレ
ア処理を設計する段階で,この「画面の一
部」をどうやって指定するかを決めるのに
少々«んだのだ。光源といっても,点光源
ではおもしろくない。自由形状にできると
いうのは必要であった。結局はマスキング
部分を光源と思うことにしたのであった。
画面全体を処理するのは遅くていやだった
ので,マウスで指定した矩形領域の中のマ
スキング部分だけを光源にする。
あるピクセルのフレアの輝度は次のよう
裏画面
特集 Z’sSTAFF 支援ツール Z’s-EX 47
にして)长める。そのピクセルを中心とする
ある広さの領域をサーチし,その中でマス
キングがかかっているピク セイレの 数を数え
る。次にその数を適切なフイルタに通して
フレアの輝度に変換する。
サーチする広さはランダム.フラクタル
と同様のパラメータになっていて,変える
ことが可能である。
フイルタとなる関数は,いろいろと試し
た結果,サーチする領域の面積を S , その
中のマスク領域の面積を m として,
f ( m )=1—( s — 3 x m ) 2 / s 2 (m < s /3)
( m ^ s /3)
と決めた。ピクセルの近くのマスキング部
分がサーチする領域の3分の1を超えた段
階でそのピクセルのフレアは最大になる。
経験的に見て,それくらいが自然なようだ。
高速化の話。マスク領域は効率的に数え
ないとどうしようもなく遅〈なってしまう
のだ。初期バージョンでは,ピクセルの周
りのマスク領域を正直に数えていた。とこ
ろが,ちょっと考えるとわかるのだが,あ
るピクセルの周囲のマスク領域は,そのひ
とつ前,つまりその左隣のピクセルのマス
ク領域と非常によ〈似ている。ほとんど同
じものを何度も数えるのは間抜け以外の何
物でもない。そこで,できる限り過去の結
果の脫歴を取っておき,数えるのは新しく
サーチする部分だけにした。このため,若
千ループの組み方が複雑になっている。
最後に,使ううえでの注意。まず,光源
にしたい部分にマスクをかけてお〈〇それ
は Z ’ sSTAFF のマスクでもいいし, Z’S-E
X のマスキングペイントでもいい。それか
らフレア処理を呼び出して,マスクをかけ
た部分の外をマウスで囲めば処理が始まる。
光源の色は,そのマスキング部分の下の
ピクセルの色を兒て,いちばん明るいもの
を代表として採用するようにした。といっ
ても,実は手抜きで,カラーコードが最大
のものを取っているため,明るい青より暗
い緑のほうを採用してしまう。というわけ
で,光源にしたい部分にはなるべく原色を
使うというのが対応策となる。
フレア処理は,扱いがけっこう難しい0
処理の中身を知っていればコント ロールし
やすくなるというわけでもない。むしろ経
験的に使い惯れていったほうがいいだろう。
EFFECTC4] DIFFERENTIAL
- effSt.c -
耳惯れない名前ではある 。 differential
は微分という意味だが,それほど難しいも
のではない。隣接するピクセルとの輝度の
図4座標変換
梓の中心の座 « を ( c,, c> ,c,) とする。
梓の四隅の中心からの相対座»を {f,[j),f v [j],f,\j)) とす S。_;• = 0,1,2,3 で . それぞれが左上 , 右上 , 左下,右下
隅に対応す 6 〇たとえば左上隅の座播は ( c t + / t [0),c v + /ytOj.c, + ム [0 】)とな 6 。
平面の法 W べクトルを (n x ,n t ,n t ) とする。
中心の座 « は移勖コマンドで 58 化し,梓の隅と法说は回転コマンドで変化する(回転コマンドは中心まわりの回転
である)。
図 3 より,ビク七ルの座祺 ( i,y) に対して ( 0Sz,y$ 511),
= (doublc)(z - 256) X 1.5
yd = (doublc)(256 - y)
ここで imW を 1.5 倍しているのに tt, ディスプレイの坩描比を補正する意味がある。
祝点は (0,0,w,), ただしル = 512 。
平面の方程式は,
(* - c z ) + n t ( y - c t ) + n a (x - c ,) = 0
となる。
刪(谊 « 〇の方程式は次のように « される。
(!)=(:)
この 2 式を解いて,
. _ n z c t + n K c„ + n,c, - n,v,
+ n v y d + rijV,
を得る。
祝 W と平而の交点の座祺 ( r,, yi , む)は,いま捋た t を用いて .
以下は,枠の左上からの相対座供で考える。つまり,枠の左上が麻点 1 C なるように平行移動を行う。枠の左上の座
供 (*•//, V *//,*.//)は次のように計算される。
(*•// \ ( «?, + /*[〇) \
VoJf = c »+/ v (0|
\ *PU / 、ら+ /“〇] ノ
交点の座» ( , yi , ) の表式も次のように変える。
( Xi \ (
f x * - x oU \
1 /. =
Vi - v»n
\ x * 1 '
K 勿 -**" ノ
悴の四隅の座 W と,平面と祝«との交点の座»から,マッピング座を針算する。 たいていの *合は,3 : 座»
と y 座 W だけから朴箅することができる。
( Z {, t / i ) は,梓の四隅の座换(ムレ•】,/»[;•])を u < :1 - Ui および:1 - v , に内分している。 { x „/ j , y 0 / j ) からの相
対位!*で考えると,
\ vi) ~ {m-/y[o)) '{m-m)
行列の形式 K 改めると,
(^i\.( /*[»]- /.1 〇 ] JM-IM V \
V yj ' V fA l \- fy [ o ) fM-m )\^ )
したがって ,( u < ,叫)は
(^\^( m-m M2]-mo] V 1 ( x < \
\vi) V All]-4(0] API-MO] ) [v り
そして,目的のマッビング座標 ( U , V )は,
( 卞卜…ハ
、《 ノ V 512 x «;< ノ
となる。
なお, 2 次の正方行列
として求める C とができる。
以上は TEX による出力です
(f*l0] t f r [0] f f*[0])
1 -v
(f*l3],fr[3].f*[3])
(fx[2],f r [2j,f*[2j)
裏画面
1-U
( fx [ lhf r [ i ], fz [ ij )
48 Oh! X 1991.2.
差を計算し,モノクロ32階調で表示してい
るにすぎない。
実行にあたっては,まず指定された領域
を白黒の輝度に変換する。これは本質的に
必要な処理ではないのだが,たとえば赤成
分の差だけを表示するよりは,赤青緑の3
成分を合わせた輝度のほうがより自然なの
ではないかという判断による。なによりも,
特定の色成分に偏っているような絵に強い
のだ。白黒化してしまえば,赤青緑のどの
成分も等しい値なので,輝度の差を求める
のに,青成分の差を取ってもかまわない。
白黒化がすんだら本題の微分処理に入る。
隣接するピクセルと書いたが,画像は平面,
つまり2次元なので, x 方向の輝度変化と
y 方向の輝度変化を取る。それを足したも
の(本当は単純に足すことは感心しないの
だが,結果はまともなのでこれで通した)
をそのピクセルでの微分とするのだ。
D ( x , y )=( M ( x + l , y )— M ( x , y ))
+( M ( x , y + l )— M ( x , y ))
こうして微分 D ( x , y ) を求めることはで
きるが,それを視覚化するにはもうひとひ
ねり必要だ。なぜなら,輝度変化は増加と
ばかりは限らず,減少もありうるからであ
る。画像は常に明るくなったり暗くなった
りを繰り返す。すると, D ( x , y ) が負の値
をとることも十分に予想できる。対して,
とにもかくにも, Z’sSTAFF の最大の魅力は使
いやすさ。これに尽きる。よく,ゲームバラン
スという言葉が使われるが,これはグラフィッ
クツールでもビジネスソフトでも重要なファク
ターだ。いくら機能が強力であってもバランス
が悪くてはうまく使いこなせない。
ところで,機能ということに関して私が日頃
から意識している評価基準は,
1) どうしても不可能なものよりは,多少使い
づらくとも可能なもののほうがよい。
2) 可能なものどうしであれば,強力なものよ
リ使いやすいもののほうがよい。
という2点である。
ペイント系のグラフィックツールの場合,で
きる限り自由に美しい絵を描きたいという人に
とって,使える色数は少ないものよりは多いほ
うがよいし,解像度も低いものより高いほうが
いい。逆に最悪でも好きな場所に好きな色の点
を打つ機能さえあれば,自由な絵を描くことは
不可能ではない。極端な話だが,これが第一の
前提だ。
Z’sSTAFF は,32768色もの色が使え,サイズ
も 512X1024 ドット。そのうえで,32768色を扱
うための機能が一通り揃っている。つまり,努
力すればどうしても Z’sSTAFF で描けないものと
いうのはほとんどないことになる。
Z’sSTAFF にはいわゆる多彩な表現といった機
能がほとんどない。発表時には,ボカシの利く
ペンやグラデーションだけでも相当びっくりし
輝度は常に0以上でなくてはならない。
ここで解決策は2つある。ひとつは,微
分の絶対値をとること。これならつねに0
以上になる。もうひとつは,微分にある定
数を足したものを輝度とするというもの。
ゲタをはかせて負の数をむりやり正の数に
してしまおうというわけ。今回は後者を採
用した。 D が負の場合(輝度が減少傾向に
ある)は暗く,正の場合は明るく表示され
る。このほうが自然であろう。
処理自体は単純だし,そこそこ速いが,
けっこう妙な効果が出ておもしろい。いっ
てみれば,石造りのレリーフといった風情
である。もし気が向いたら, Z’sSTAFF
のウィンドウを閉じないで S キーを押して
Z ’ s-EX を呼び出し,ウィンドウに対して
この微分処理を施してみてもらいたい。 Z ’
sSTAFF がたちまちにして SX-WINDQ
W に変身することであろう。
開発を終わって
今回のディスク関係では,僕にしては珍
しくアセンブラを多用した。アセンブラを
使ってみて改めてありがたく感じるのは,
68000のレジスタの多さである。たいてい
の処理はワークエリアを用意する必要がな
い。必要なパラメータはレジスタにしまつ
たものだが,特殊効果に属する画像処理機能に
関する弱さは当初から指摘されていた。
にもかかわらず, Z’sSTAFF を凌駕するものは
現時点ではないといってよい。機能的には優れ
たものが今後とも出てくる可能性があるが,使
い勝手の面でこれを超えるものを作るには相当
に腰を据えてかからねばならないだろう。
しかし,その Z’sSTAFF にも大きな弱点がある。
入出力関係である。 CANVAS PRO-68K の場合に
も指摘されていることだが,スキャナからの取
り込み,そしてプリンタのサポートだ。今月号
で紹介されている Fine Scanner-68 の場合は専用ソ
フトが強力なのでデータレべルの連動で十分活
用できるが,シャープ純正のカラーイメージス
キャナを利用する場合にはモノクロの画像取り
込みで苦戦を強いられるだろう。また,ブリン
夕も48ドットのハードコピールーチンがサボー
卜されておらず,24ドットでのブリントアウト
にしても必ずしも優秀とはいえない。
Z’sSTAFF PRO-68K は描画面では実に素啃ら
しい ユーザー インタフェイスをもっている。グ
ラフィック機能に魅力を感じて X68000 を購入
した人は,このソフトぐらいはぜひ手に入れる
べきだ。58,000円と多少値は張るが,改めてX
68000の価値を実感できるはずである。機能面
では要望も多いが,それらは今回の Zs-EX のよ
うなかたちでもサボートできるだろう。しかし,
ツァイトには入出力の面でもう一歩がんばって
バージョンアップを果たしてもらいたい。 (T)
ておけ ばいいの だ。できる限り レジスタを
使うことで,高速化も図れる。
それから,デバッガには感謝しな〈ては
なるまい。実は,デバッガをデバッグに使っ
たのは今回が初めてなのだ。エラーが出る
ときはプログラムが悪いのだから,直ちに
エディ タに戻って ソース リストとにらめっ
こするという作法で今までやってきていた。
いや,やってこれていた。
ところが,今回は正体不明のエラーが多
発するのに悩まされた。僕にとって Z’sST
AFF はまったくのブラックボックスなの
で,そのエラーの原因がアルゴリズムにあ
るのか Z ’ sSTAFF との相性の悪さにある
の力 1 ,自信力 ? 持てなかったのだ。いつもよ
り早いディスクの締め切りも迫った頃,窮
しても通じなかった僕は,ついに Z’sSTA
FF がなにか悪いことをしているのではな
いかと疑ってしまったわけだ。結果的には
それはまったくの見当違いだったのだが,
それくらい僕はあせっていたのだ。
そんな折り,「デバッガを使え」という
忠告を受けた。 Z ’ sSTAFF はテキスト画
面をワークエリアに使っているので,コン
ソールは使えない0そこで,出力はリダイ
レクトでプリンタに出すことにし,文字ど
おり手探りでのデバッグ作業となった。今
思えば, RS -232 C で別のコンピュータに
つないでターミナルデバッガ'にするという
方法もあった。マシンが2台必要になるが,
マシン室には X 68000 が何台もある。
ブレイクポイントを設定し,レジスタの
値をにらんでいるうちに,とんでもなく恥
ずかしいバグを見つけた。さっそく溃した
ら,ちゃんと動いてくれた 3
その昔,本誌で「7度デバッグして人を
疑え」という祝一平氏の格言を聞いた。そ
の頃の僕はひとりの読者にすぎなかったが,
今になってその言葉を実感したのである。
それからメモリを 4 M バイトに拡張して
おいて本当によかった。 MicroEMACS か
ら COMMAND . X を呼び出して,そこで g
cc を走らせる。コンパイルが終わったらそ
こから Z ’ s - EX を実行する。もちろん, Z ’
s - EX はチヤイルド プロセスで Z’sSTAF
F を呼び出す。これだけやってもまだメモ
リに余裕はある。アンドウが使えるくらい
余裕がある。
しかし,このために,消費する資源が犯
罪的に大き〈なってしまった。少し反省。
氺
Zs — EX は今後もいくつかの拡張機能を
用意する予定である。ご意見や,欲しい機
能などがあればお寄せいただきたい。
Z’sSTAFF PRO — 68 K の魅力と問題点
特集 Z,sSTAFF 支援ツール Z’s-EX 49
レイトレーシングにお t 、て 半影を生成す る
HASH.X
Ichien Topu
一圓亨
1月号のデ^^ク 1;^® 録されていた半影つきレイトレーシング
システム HASH で看 1 。コンパイル方法やアルゴリズムなど,
1月号で十分に説明できなかった分を今回まとめて解説します。
ソースリストなどは1月号のデイスクを参照してください。
レイトレーシングの立場
レイトレーシング……「力」で3次元空
間の数式を目に見える形に変換するアルゴ
リズム0しかし残念ながら,レイトレーシ
ングが CM や映画の1シーンなどに使われ
ることはあまりないようだ。
その最大の理由は,レイトレーシングカ 5 '
宿命的に持つ計算時間の問題だろう。計算
時間だけで選ぶなら, Z バッファ法*1やス
キャンライン法などのほうが明らかに速い。
まして, Phong シェイデイングなどのシェ
ーデイング補間法(スムースシェイデイン
グ)* 2 でも使われた日には,(反射や屈折は
別として)レイトレーシングと変わらない
画像を,レイトレーシングの何倍も短い時
間で生成できるのだ! CM や映画で使うと
なるとほんの数秒のアニメーションで何十
枚もの静止画が必要となるわけだから,1
枚の描画に何時間もかかるレイトレーシン
グではアニメーションに向かないのだろう。
では,「レイトレーシング」の立場はどう
なるのだろう。実用的でないアルゴリズム
として,消え去るしかないのだろうか? …
…この答えは簡単に出すわけにはいかない。
実際に,レイトレーシングの強力な表現力
のゆえに,膨大な時間をかけて作成された
アニメーションもあるのだ。
前置きが長くなった力す,ここで今回の
テーマで ある。 レイトレーシング がその膨
大な計算時間と引き替えに手に入れた,強
滑らかな影
力な「表現力」をさらに強化してしまおう
というのだ。しかも,計算時間の悪化を最
小限に抑えて。
* 丨 Z バッファ法については参考文献 2) を参照
してほしい。
* 2 Phong シヱーディングについて も参考文献
2) を参照してほしい(手抜きか? いやいや,私
の専門外なので……)〇
なにを強るのか7
これまでにレイトレーシングの作品(画
像)を見て,なにか不自然に思ったことは
ないだろうか? 「 CG なんて全部不自然だ」
などと意地悪をいわないように (ヨロ シク)。
不自然なのだ。影が。なんであんなにシ
ャー プなエッジができるんだ? 現実世界
の影はエッジがぼんやりしていて,影の境
界線を定規で引くようなわけにはいかない
はずだ。レイトレーシング(に限らず,多
くの CG のアルゴリズム)で,シャープな
エッジを持った影が見られるのは,光源が
大きさを持たない「点光源」として扱われ
ているためである。
よし,影処理を強化しよう。でもどうやっ
て?まず頭に浮かんだのは分散レイトレ
ーシング* 3 だ。分散レイトレーシングなら,
光源が大きさを持つために生ずるぼやけた
影(半影)を表現できる0しかし,分散レイ
トレーシングでは「計算時間の悪化を最小
限に」という条件にあてはまらない。この
とき,ふと頭に浮かんだアルゴリズムは,
かなりの近似と扱える形状の制限を受けつ
つも十分現実的な半影を生成できると推察
された。さっそくプログラミングにかかり,
‘ HASH ’ をものの2週間で完成してしまっ
た。ちなみに, ‘ HASH ’ という名前は ,“ H
Alf-SHadow ray tracing system ” から
つけたものだ。
* 3 分散レイトレーシング (distributed ray tracing),
分配レイトレーシングと呼ばれることもある。ア
イデアは,ひとつのビクセルを計算するのに,そ
のビクセル内に K 本の視線(レイ)をランダムに発生
させ,ピクセルの色を K 本のレイの色の平均とし
て求めようというものだ。分散レイトレーシング
はアンチェイリアシング効果を持っているのだ。
また,レイの分散(分配)は丨次レイだけでなく,
2次以降のレイに対しても適応される。すなわち,
なんらかの物体に当たって反射するレイもまた,
正反射方向を中心にしてランダムに L 本分散され
るのである。これによって,金属表面の鈍い映り
込みを表現することができる。
これと同じことが屈折光にもいえて,この場合
には*り硝子のような鈍い透過を表現できる。肝
心な影処理だが,これもやはり,大きさを持った
光源に向かって M 本のシャドウフイーラをランダ
ムに発生させて, M 回の影処理を平均することに
よって半影を生成する。ほかに,時間軸に関して
ランダムに N 点サンプリングし, N 点の平均を取
ることによって動きのブレを捕らえること(モー
シヨンブラー)も分散レイトレーシングでは可能
である。分散レイトレーシングは,アンチェイリ
アシング.鈍い反射.鈍い透過 • 半影 • モーシヨ
ンブラーと,正に究極のレイトレーシングである。
しかしながら,ランダムに発生させたレイの平均
でピクセルの色を求める以上, K,L, M, NO
値はある程度大きくなければならない。したがっ
て,レイの数は極端に增加し,計算時間も極端に
長くなるのである。実際には,工夫を凝らしてよ
り少ないレイで実現しているらしい。
半影を生成するレイトレーシング
▼
レイトレーシングの中で半影を生じるア
ルゴリズムには,前節で紹介した分散レイ
トレーシングのほかに円錐(コーン)レイ
トレーシングがある。これは1984年に J . A
manatides によって発表されたアルゴリ
ズムで,レイ(視線:直線)の代わりに円
錐ビームを使う方法である。この方法も分
散レイトレ ー シングと同様に,アンチェイ
リアシング.鈍い反射.鈍い透過.半影な
どの効果を持っ。
分散レイトレーシングにせよ,円錐レイ
トレーシングにせよ,演算時間が通常のレ
イトレーシングの数倍から十数倍になるこ
とは必至で, 10 MHz の68000で実現するの
は難しい。今回のプログラムでは,アンチ
ェイリアシンク、も純い反射も純い透過もモ
ーションブラーも表現できないが,半影だ
けは高速に表現できる。
50 Oh! X 1991.2.
一般の影処理(全影処理)のアルゴリズム
すでに述べたとおり,一般のレイトレー
シングでは光源として,大きさを持たない
点光源を想定している。したがって,影処
理は次のように行われる。
ある物体と視線との交点がもとまると,
この点から点光源へ向けてシャドウフィー
ラと呼ばれる視線を発生し,シャドウフィ
ーラとほかの物体との交点を調べる(図1)。
もし交点があれば,光源からの光が交差し
た物体によって遮られることになるから,
もとの点は影になる。
この方法は,シャドウフィーラと物体と
の交点が「ある」か「ない」かによって影
を生成するので,一様な影となり半影は生
じない。
半影処理のアルゴリズム
現実世界で半影を生じる原因について,
光波の回折によるものなどいくつか挙げる
ことができる。今回の半影処理で対象とな
っているのは光源が大きさを持つために生
ずるもので,光源として球状の物体を想定
している(図2)。
いま,ある物体と視線との交点: P を考
え, P 点が影になるかどうか調べるため P
点と球状光源の中心を結ぶ線に垂直に投影
面: A を設定する。 P 点を視点, A 面を視
野面とする隠面問題を解決できれば, A 面
に投影された光源の面積: S と他の物体に
隠されて残った部分の面積: S ’ を知るこ
とができる(図3)。光源の明るさを Il ! t と
するなら, P 点における光源光の強度 :I
LIT-P は次式により得られる。
I LIT-P = I LIT X ( S ’/ S )
プログラムでは球状光源の各部から〈る
光はいたるところ一定と仮定している。実
際には光源の中心付近からくる光と周辺部
からくる光とでは強度が違うだろうから,
投影面上の面積: s ’ について積分しなけ
図 E 光源が大ささを持つために生じる半影
ればならない。さらに,光源の中心付近と
周辺部からの光とでは P 点への入射角が異
なるため,正確:なレンダ、リング* 4 を行おう
とすると「陰 j 処理 ( shading ) に対しても
S ’ について積分しなければならない。し
かし,これらはいたずらにレンダリングの
計算速度を低下させるうえに,たいした効
果も期待できな L 、ので今回は目をつぶった。
*4 簡単に説明すると,つやなど物体の質感を含
めた色を決定する過程のことをいう。
図1通常の影処理
a ) 影になるケース
b ) 影にならないケース
特集 HASH.X 51
隠面消去問題の解法
昔から隠面問題* 5 を解決するアルゴリズ
ム について さまざまな方法が考えだされて
きた0もちろんレイトレーシングもその方
法のなかのひとつである。ほかに Z バッフ
ア法•スキャンライン法.リストプライオ
リティ法•奥行き法など,さまざまな方法
がある。今回も半影処理において投影面:
A 上にとった mxm のラスタ* 6 について 隠
面消去を行うためにいずれかの方法を選ば
なければならない。2次曲面などを対象と
するときにはレイトレーシングを選ぶこと
になる力 5 ',この場合大変な計算速度の低下
を覚悟しなければならない* 7 。今回のプロ
グラムでは,曲面を球面の みに 限定して,
高速な隠面消去のアルゴリズムを使用する
ことにする。
なんらかの 3 D グラフィックプログラム
を組むとするならば,上記のような隠面消
去の アル ゴリズムを選んで真面目に隠面問
題を解かなければならないだろう。しかし
いまは影処理を行うことが目的なのである
から,なにも真面目に隠面問題を解く必要
はないのた;視点と光源があって,その間
に光源からの光を遮る物体(球)があるのか
ないのか,あるのなら,その球はどのくら
い光源を覆い隠すのか。それだけがわかれ
ばよぃ。
今回のプログラムでは,物体(球)の視線
方向の奥行き(デブス: depth ) と球状光源
のデブスとを比べてその物体が影を作るか
否かを判定している。
図3半影処理の原理
*5 正確には「隠面消去問題」。ある点から物体を
見たときにどの面が見えるか,あるいは見えない
かを判定し,見える面だけを表示すること。
*6 点描画面のことをラスタという。
*7 この場合,力づくで m x m のラスタについて
レイトレーシングを行うのもよいが,それではと
ても実用にならないので,実際には分散レイトレ
ーシングに頼ることになるだろう。
光源の投影一球面の投影=半影
ここで,今回の半影処理の手順を具体的
に示そう。
まず,前節の A 面に mxm のラスタを設
定し,ここに光源を投影する。光源は球状
光源を想定しているので,投影された光源
は円になる。したがって mxm のラスタに
対して円を生成すればよい。あたかも,グ
ラフィック画面に‘ circle ’ 命令で円を描く
ょうに。
次に,物体(この場合は球面)と光源の奥
行きを比べる。物体が光源と視点の間にあ
れば,その物体は光源を覆い隠す可能性が
あるので A 面に投影する。その像は一般に
回転を伴った楕円になってしまう,このス
キャン コ ンパ、ージョン は非常に手間がか
かるから,投影した像を円に近似して光源
の場合と同様に mxm のラスタ上に円を生
成する。このとき,光源による円と物体に
よる円を別々の記号で表しておけば,あと
で影にならなかった光源の面積: S ’ を知
ることができる。
*8 直線や円などを画面上のドットに近似する手
順をラスタ化といい,スキャンラインの順序で画
像を生成することをスキャンコンバージョンという。
なお,円のスキヤンコンバージョンには 「Bresenh
am の増分法」を用いた。
光学モデル(拡散反射)
拡散反射には, Lambert の拡散反射モ
デ'ルを使用した0
I DIF = C prmXIlitX ( L . N )
I DIF :拡散反射強度
I LIT : 光源光強度
C PRM :物体の色
L : 光源の存在する方向
N : 法線ベクトル
ただし,| L | = | N | =1
( L - N ) は, L と N の内積,
| L |はベクトル: L の大きさを表す0
鏡面反射(八イライト)
鏡面反射には, Blinn の鏡面反射モデル
を使用した。
Ispc = RxIlitX ( H . N) g
I SPC :
鏡面反射強度
R :
反射率
G :
光沢(大—つやあり— 2 0
つやけし—小)
H :
H = ( V + L )/
1 V+L
V :
視点の存在する方向
ただし
| H | = | V | =
| L | =
半影レイトレーシングの実験
プログラムはすべて1月号の付録デイス
クの中に収録されており, C 言語のソース
a ) 光源と物体の投影 b ) 投影面上の像
52 Oh ! X 1991.2.
プログラムは 5 つのモジュールより成り立
っている。
1) メインモジュール : hash.c
2) サブモジュール : hash _ sub.c
3) デイフアレンスアブソーバ: differ , c
4) フレームバッファドライバ: frame.c
5) べクト ル演算 モジ ュール : vector.c
プログラム全体の規模からみると,かな
り大きいように思えるが,実はレイトレー
シング本体は‘ hash . c ’ と ‘ hash - sub . c ’ の
2つのモジュールだけで,残る3つのモジ
ュールは,
• differ , c
システム,ライブラリなどの「違い j を
吸収する
• frame , c
グラフィックの取り扱いを汎用化する
• vector , c
3次の ベクトル 演算を行う
のように,汎用になっている。半影を生成
する レイトレーシング としてはかなり コン
パク トにまとまっているのではないだろう
か。
なお, ‘ frame . c ’,' vector . c \ ‘ differ . c ’ に
関しては,苦労して汎用に組んだものなの
で愛機 X 68000 のためにも,多くのューザ
一に使用してもらいたいと思う。ついては,
Oh ! X への投稿に関しては「一圓亨の ‘ vect
or . c ’ を使った」とひと言書いてもらえれ
ば使用は自由である。もちろん,個人的な
使用に関してはこの限りではない。どんど
ん使ってほしい。
コンパイルするには, 5 つのソースファ
イルに各モジュールの定義ファイル (has
図4鏡面反射モデル
h . h , frame . h , differ . h , vector . h ) を加
えた 9 つのファイルが必要である0ここで
は上記のファイルが適当なデイレクトリに
あって,カレントパスがそのディレクトリ
まで通っているものとする。コンパイラは
GCC または 0 S -9 上の MW - C を使用する。
GNU - C :
gcc nash.c hash - sub.c frame.c dii
fer.c vector.c -lbas
0 S -9/ X 68000 + MW-C :
cc hash.c hash - sub.c frame.c diff
er.c vector.c
-l = lib / xos 9- pss.l
各 コンパイラ とも,最小限必要なオプ
ションのみ示した。各自必要に応じてほか
のオプションを付けてほしい。なお , 「XC
ver 1.0」のバグのため 「XC ver 1.0」で
は コンパイルで きない 。 「 V er 2.0」 につい
ては手元にないので未確認である。もし,
XC しか手元になくて,それでも‘ HASH ’
を使いたいという,嬉しい読者がいたら,
誠に申しわけない力 ? 「人間プリプロセッサ」
をしてもらいたい。ここで問題になってい
る XC のバグというのは条件付き コンパイ
ル命令の周辺のものなので,識別子 “ —X
C -” が定義されているときに コンパイル
されるべき部分を残し,それ以外の余計な
# i 卜 # endif をエディタなどで削除してコ
ンパイル すればよいはず だ。
ただ,この方法も確認したわけではない
ので,実際に「人間プリプロセッサ」を実
行しても素直にコンパイルできるとは限ら
ない。その辺は,自分の責任においてやっ
てほしい。本音をいえば,私もあの XC で
デバッグをするなどという精神衛生上よろ
しくないことはしたくないのだ。 XC をす
でに持っている読者なら, Oh ! X (1990 年6
、ノ\一 卜曲線の組み合わせ
月号)で GCC を手に入れたはずだし,この
号を買い忘れてしまった人もなんとか GC
C を手に入れたほうが無難だと思う。
実行方法
‘ hash ’ に続いてデータのファイル名を
打ち込み,リターンキーを押すとレイトレ
ーシングを開始する。
hash データのファイル名’
もし,完成した画像をセーブしたいなら
データの ファイル名に続いてセーブすると
きのファイル名を記述する 0
hash ‘ データのファイル名’‘ セー
ブ時のファイル名’
セーブは, Human 68 k のべタフオーマ
ットで行われるので X - BASIC などから簡
単に読み込める。また, ‘ hash ’ で画面を
ロードすることも可能である。
hash frame load 口ードするフ
ァイル名’
写真を見ればわかるとおり,通常の影処
理を行った場合の影は,非常にシャープな
エッジを持っていて,影となるところは至
るところ一定の暗さとなっているのがわか
るだろう。画面左上に見えている丸い物体
Id.f = CprmX|litX(L • N) 广、光源
(|L| = !N|=I) )0 , LIT
/
Cpru
拡散反射モデル
鏡面反射モデル
特集 HASH.X 53
従来のレイトレ
は無限遠方にある光源で,この光源による
薄い影も確認できる。これに対し,半影処
理を施した画像では,完全に暗い部分(本
影)とその周りにぼやけた部分(半影)が見
られる。現実世界の光源は必ず大きさを
持っており,写真に示すようなシャープな
影ができることはない。
今後の発展
完成画像を見た感想はいかがだっただろ
うか。扱える曲面が球面のみに限られてい
HASH ではこうなる
るとはいえ,こと影に関してはかなり現実
感のあるものが得られているのではないだ
ろうか。今後,このプログラムを発展させ
ようとするとき,まず考えられるのは曲面
の種類を増やすことだろう。
レイトレーシングでは2次曲面が扱える
のが普通だから,半影処理も2次曲面に対
応させなければならない。しかし,対象が
2次曲面となると,今回用いた簡単で速い
アルゴリズムは使えなくなる。それでも,
2次曲面に対応させたいのなら,あとは分
散レイトレーシングか円錐レイトレーシン
グに頼ることになる。
ほかに,非常に特殊ではあるが,多面体
( 3角ハ 0 ツチ)に対してレイトレーシングを
行う アルゴリズム* 9 がある。影処理のとき
に Z バッファ法などを使って,多面体を構
成する3角パッチを投影面に投影してやれ
ば今回のような半影処理を実現できる。レ
イトレーシングにおいて今回の半影処理を
発展させるとすればこの方向しかないだろ
5〇
多面体であれば Z バッファ法などのほう
が高速だし, スムースシェーデイン グが使
えて有利なのだが,多面体のレイトレー シ
ングというのもなかなか面白そうなテーマ
なので,そのうち機会があれば挑戦したい
と思っている。
*9 興味のある方は文献 7. 4) をどうぞ。
ぉわりに
半影処理された画像を見て,我ながら感
動してしまった。自作の別のレイトレーサ
一夕の文法
レイトレーシングのデータの中には,次のものが含まれる。
I . システム記述項
s 1 横ピクセル数’ 1 縦ピクセル数’‘ビット数 (4, 8, 16),‘ ディ
ザリングモード (0 〜4)’ ‘ 左上X座標’ 4 左上 Y 座標, , 右下X座標’
4 右下 Y 座標’ ‘最大追跡回数’‘影処理用ラスタのメッシュ’
ピクセル数とビット数によって画面モードが決定される。
最大追跡回数は反射光の追跡を行う最大値を与える。
メッシュ: mesh は半影処理用ラスタの細かさである。大きな値とす
ると緻密な半影を生成するが若干計算に時間がかかる。 mesh=l とする
と通常の影処理を行い, mesh==0 ではまったく影処理を行わないため,
計算が早く終わる。
例) s 512512 16 0 0 0 511 511 3 30
mesh = 30 の半影処理を行いながら. 5 12X512(65536) モードのフルス
クリーンのレイトレーシングをする。
2. 視野面記述項
v ‘視野面の横幅の1/ご • 上方向べクトル’ 1 參照点’‘視点’
上方向べクトルは視野面の「上」が存在する方向 • 参照点は視野面の
中心•視点は「目 j の位置である(図4)。
3. 環境記述項
g 4 地面の市松模様の大きさ’*市松模様の属性I’ ‘市松模様の属
性2’ ‘ 光が半減する距離’‘霞表現 (0 〜1)’ ‘空の色 (r,g,b)’
地面の市松模様が要らなければ大きさを0にする。属性は後述め a’
項の No. を記す。
例) g 100. I 2 1000 .0.2 0.4 0.6 1.0
市松模様の大きさは丨辺100の正方形で,光の強さは距離1000進んだ
ところで1/2になる。空の色は水色である。
4 . 属性記述項
a ‘属性 No. (>=0)’ ‘ 色 0%g, b)’ • 反射率 (0 〜1)’ * ハイライト
の明るさ(通常:1)’ 4 光沢(〜16〜32〜)’
属性 No. は球面や地面の市松模様の属性を決定するのに用いられる No.
である。
5. 光源記述項
I ‘光体の属性(>=0)’ ‘ 中心座標’ 4 半径’ 4 光源光強度’
I •一 I’ 1 光源の存在する方向’ 4 見掛けの大きさ(単位:度)’
’光源光強度’
属性に対して負の数を与えると無限遠方からの平行光線源の定義と見
なされる。そうでない場合は有限な位置にある球状の光源と見なされ,
指定された属性を持つ実体が同時じ定義される。
半径および見掛けの大きさは0であってはならない。
6. 球面記述項
P 4 球面の属性’'中心座標’‘半径’
54 Oh! X 1991.2.
. 000
• 000
atr x
11-41.6168
12 -68.9430
13 -79.6845
14 ->75.0000
15 -58.8975
16 -37.1231
17 -15.7857
y
-72.0824
-119.413
-138.018
-129.904
-102.013
- 64.2991
-27.3416
z
89.0560
152.114
223.987
290. 000
338.792
364.246
366.220
r 本
45.9707
41.7228
37.5075
33.3372
29.2312
25.2209
21.3602
blu
. 000
.170
.330
.500
.670
.830
1.00
blu
1.00
.830
.670
.500
. 330
.170
. 000
atr x
4 83.2336
5 137.886
6 159.369
7 150.000
8 117.795
9 74.2462
10 31.5714
r *
17.7471
50.2430
blinn
32 p
32 p
red
1.00
1.00
red
1.00
.830
.670
.500
• 330
.170
.000
y
72.0824
119.413
138.018
129.904
102.013
64.2991
27.3416
z
89.0560
152.114
223.987
290. 000
338.792
364.246
366.220
r 本
45.9707
41.7228
37.5075
33.3372
29.2312
25.2209
21.3602
red
. 000
.170
• 330
• 500
• 670
• 830
1.00
r *
45.9707
41.7228
37.5075
33.3372
29.2321
25.2209
21.3602
z r light intensity 木
0. 1. .60 .60 .60
3 . 4 . .60 .60 .60
blu ref high blinn 本
•200 .35 3 36
.500 1.0 0 48
chek at1 at2 half dift amb
0 . 0 0 0 . 0 . .00
sky color *
•40 .20 .30
本 atr
x y z
0. 0. 290.
r
60.
light intensity
« 50 .50 .50
============ heart === :
Heart-shaped
decoration
* wid hgt bit dth
s 512 512 8 4
xl yl x2 y2
0 0 511511
dx dy max mesh 木
4 6 3 40
* 画面幅/ 2 上方向
v 320 001
參照点
0 0 200
視点 *
860 -80 700
では,2次曲面や屈折などもサポートして
いるのだ力 5 ',影がノッペリしているため,
「ううむ……」と唸ってしまう。おかげで
分散レイトレーシングをやりたくなった0
しかし, X 68000 では遅すぎる。ここは我
慢だ。学校でコプロ付きの P 〇 -98 RA の
スピードなんぞを見せつけられると,つい
我が家のプリンタの下に敷いて計算端末に
したい欲望に駆られてしまう。 X 68000 は,
このスピードで厳しい生き残り競争を勝ち
抜いていけるだろうか。
それはそうと, X 68000 のプログラミン
グ環境は最高である。グラフィック•スプ
ライト • PCM ……, X 68000 にはプログラ
ム欲を駆り立てるテーマが山ほどある。ま
して, OS -9 がある。今回のプログラムは
すべて OS -9/ X 68000上の MICROWARE
- C ( MW - C ) で組んだものだ。 MW - C と
XC のライブラリの違いのため,これまで
( hash 以前)のプログラムは移植を渋って
いたのだが,近頃, GNU-C - FLOAT 3
+ • コプロボードを手に入れたことから G
NU - C への移植に踏み切った。
1年半前,私が Oh ! FM ではなく, Oh !
X を 買うようになっていちばん寂しかった
のは, OS -9 の記事がほとんどなかったこ
とだった。いまでは OS -9 は開発の環境な
のだと割り切っているので,もう「寂しい」
とは思わなくなった。私にとっては,裏で
レイトレーシングを しながら表では エディ
U スト
夕でデバッグができる環境 ( OS -9) はとて
も心地好いのだ。
参考文献
1) 小林一也,「レイトレーシングを用いた球面
の3次元グラフイックス」,ソフトバンク, Oh ! F
M 1984年5,6月号
2) 丹明彦, 「 Z バッファアルゴリズム」,ソフト
バンク, Oh ! X , 1989年7, 8月号
3) デビッド. F . ロジャース, 「実践コンピュータ
グラフィックス基礎手続きと応用」,監修:山口
富士夫,訳:セイコー電子工業[株]電子機器事業
部,日刊工業新聞社
4) 高桑昌男 , 「CG レイトレ 物語」,アスキー出
版局
5) 中前栄八郎,「ここまできたリァリズムー四
半世紀の進展一」,図形処理情報センター , PIX
EL , 1989年2月号
8 0 5 0 5 17
6 3 4 0 7 3 5
X1480928
6 9 6 0 8 17
18 9 5 8 7 5
4 6 7 7 5 3 1
I I - I
r
t
a 8901234
112 2 2 2 2
ppppppp
-22222c
h
g 0 0 0 0 0 0
.13333333
h
f 1111111
0 0 0 0 0 0 0
r.
n 0000000
r 0370370
g *865310
u 0000000
X0000000
.D CS
n 0 0 0 0 0
r 0 0 0 0 0
g ttv 0 0
ppppppp
n
n
.12222222
13333333
b
h
s 0000000
•13333333
h
f 1111111
B 0 0 0 0 0 0
r.
n 0000000
r 0730730
2 0 13 5 6 8 •
0 4 7 0 2 6 0
z 6180942
5 19 0 7 2 2
0 .
• 2 3 0 8 4 6
9 5 2 9 3 6 6
y 8122333
cs
0 0
5 5
y 3
X 0 0
0 0
r
t
a 2 3
h
20 0
•13 3
h
f 11
6 0 0
r • t
n 0 0
r 0 0
g • •
u 0 0
10 0
b 參 .
all 023
p 二 N
04567890 01234567 08901234
N 1 N1111111 Nil 22222
112 2 2 <
本 aa 本 aaaaaaa 本 aaaaaaa 本 aaaaaaae
d 0000000
60000000
r 0000000
p p p p p p p
.12222222
13333333
b
0 CS ¢3
.13333333
h
f 1111111
ecs ¢9
r.
n 0 0
r 0 0
g • 5
d 0 0
6 0 0
r • 5
No?
* a a
123456789012345678901234567890123456789012345678901234
111111111122222222223333333333444444444455555
特集 HASH.X 55
製品試用レポート
Fine Scan
lakahashi Tetsushi
高橋哲史
HAL 研究所 drFine Scanne 「- X 68」 はモノクロ256階調の
取り込みが可能なユーザー待望の八ンデイスキヤナです。添付
ソフトも強力でグラ$7イツク作成のおともに最高と高橋君も絶
賛。さっそく使用感をレボートしてもらいましよう。
こんにちは。お絵描き専門スタッフの高
橋くんです(笑)。さてさて,今日は全国
1千万人(当社推定?)の CG 描きの皆さん
に朗報です。そう, CG の下絵を用意してス
キャナで取り込んでは,うまくいかず,何
度もコピー機とスキャナの間を往復したあ
げく 「だあ 一っ もうやってらんね 一っ!」
(CG 描きなら誰でも一度は経験があると
思う…… ) となってしまったあなた!
HAL 研究所から出たんですよ,賢いスキャ
ナが!これで,いままでの取り込み調整
の負担がかなり軽減されることと思います。
とにか〈賢く,使って嬉し〈なってしまう
私なのでした(ほくほく)。ああ,こんなに
可愛いやつなのに,この原稿書き終わった
らまた編集部に返さなくてはならないなん
て。うう,なんて非情な世の中なの(編注:
当たり前です。欲しかったら自分で買いな
さい。それが人生です)。
製親要
さて,このフアインスキャナがいままで
のハンディスキャナとどこがどう違う(賢
い)かといいますと,なんといっても「グ
レイスケール256階調取り込みを実現して
いる」という点なのです。これにより元絵
のペンの強弱(いわゆる「入り」と「抜き」)
までがきっちりとディスプレイ上で再現し
てくれます。はっきりいってこれは感動も
のです。いままでのハンデイスキヤナでは
白と黒2階調のみの取り込みでしたので,線
がプチプチと切れてしまい,そのイ1多整にた
いへん 時間を要してしまいましたものね
(元絵を描いている時間より修整してる時
間のほうが長かったりして)。
それと専用の画像加エツール 「Image
Photo 68」で取り込んだ絵をデイスプレイ
上でリアルタイムにいじれますし,まさに
いたれりつくせりといった感じがあります。
いままでのスキヤナではせいぜい BASIC
の取り込みプログラムがサンプルで ついて
くる程度でしたからこれはもう天と地ほど
の差です。
さて使い心地は?
読み取り幅や転送速度などの詳しいスぺ
ックは1月号の広告を見れば載っています
ので,ここでは付属ソフトである 「Image
Photo 68」を詳しく見ていきたいと思いま
す。このソフトでは明るさやコントラスト
などの細かい調節がマウスひとつで簡単に
行えるようになっています(もちろんキー
ボードからの操作も可能)。また複写や回転
などの簡易グラフイック ツールと しての機
能も兼ね備えているのでかなり重宝するこ
とでしょう。
さて 具体的に取り込みはどう
行うのでしようか?このソフ
卜は「1024 X 1024」の取り込み
画面を持ち,その中から範囲を
指定してそこに画像を取り込む
ようになっています(もちろん
最大取り込み面積は 「1024 X
1024」です!)。あ,いい忘れて
いましたが画面モード設定によ
り768/512ドットの両モードに
対応しています。そして取り込
みには「範囲内取り込み,自由
長取り込み」の2種類があり,範
囲内取り込みには,
256 X 256 512 X 512
768 X 512 640 X 400
512 X 480 全領域 (1024 X 1024)
での指定が 1024 X 1024 の画面の任意の点か
ら行えるようになっています(便利ですね一)。
これにより複数の絵を同時に取り込み,画
面上で編集することが可能になっています。
また自由長取り込みは画面モードに関わら
ず 1024 X 1024 の取り込みを行います。
特筆すべきは取り込みの速度で,本当に
「スルスルー」 と画面が滑るように流れ,
あっという間に取り込みが完了します(あ
まり調子にのって速く転がしすぎると下絵
を読み飛ばしてしまうのでご注意を)。これ
なら元絵の位置がずれていたといっても,
取り込み直しが苦になりませんね。う〜ん,
専用ボード付きで本当によかった。
さて,取り込んだ絵はその場ですぐに加
エができます。コントラスト調整や2値化な
ど,さまざまな機能がありますが,とりあ
えず順番に見ていくことにしましよう。
まずはメニューバー3番目の「調節」で
す。ここではコントラスト,明るさの調節
ができます力 5 ',なんといっても重宝するの
は y 補正です。これは出力先のデバイス(プ
リンタやディスプレイですね)に合わせて
輝度を自動調節してくれるという非常に便
利な機能なのです。プリンタもドットイン
パクト,熱転写,レーザーと多種多様に対
応しており思わず感心してしまいました。
ちなみにデフオルトは 「 HALFAX 」 になっ
ていました(笑)。
そしてさらに強力なのが「ユーザー曲線
による: Hi 正」です0マウスでちよいちょい
とユーザー曲線をいじるだけで画面の色合
いが瞬時に変わっていくのは実に爽快です
(768 モードでは「設定」をクリックしない
と変化しないんですけどね)。これは次の2
値化の細かい調整に威力を発揮します 。 CG
描きには非常にありがたい機能なのです
(こだわりで自分の求める線が得られるの
が良!)。
そしていよいよ肝心要の2値化です。2値
56 Oh! X 1991.2.
化は文字どおり表示されているグラフイッ
クを白と黒の2色だけに置き換えてい〈作
業なのです。 「 Image - Photo -68」 ではこの
2値化にかなり力を入れており単純2値化を
始め誤差拡散,ベイヤーなどさまざまな手
法が用意されているので,取り込んだ画像
にあった2値化を施すことができます(ちな
みに自分で作成したデイザパターンも使え
ます)。でも僕が主に使うのは単純2値化だ
けなんですけどね。いわゆるアニメ調の CG
ばっかり描いているもので。しかし写真な
どの取り込みにも威力を発揮するので,
DTP (デスクトツプパブリツシング)に
も非常に重宝するのではないでしょうか
(もちろんソフトがあればの話ですが……〇
X 68000 の DTP 環境はとても不幸だと思う
私)。
また 1024 X 1024 の任意の範囲を倍率を変
えて2値化を施すことができるので,たとえ
ば1024 X 1024全域に取り込んだ絵を512 X
512に収まるようにすることもできるので
す(縮小率50%)〇ただ 512 X 512 だとデイス
プレイ上でのドットの縦横比が1:1ではな
いので,1024 X 1024の絵を正直に縮小率
50%で持ってくるとやや潰れた絵になって
しまいますので注意したいところです(お
勧め倍率は横50%縦37%といったところで
しょうか?)。まあ,この辺は画面表示でリ
アルタイムに2値化を施した画像を確認で
きるのであまり心酉己しなくても大丈夫でし
ょラ〇
さて2値化した画像を保存します。2値化
された画像に限らず 「Image Photo 68」は
多彩な画像フォーマットをサボートしてい
ます。驚くことに市販ツールとして初めて
PIC 形式のファイルをサボートしています
(おお!)。ただ私が使ったものはサンプル
版のせいかまだ PIC の P の字も見えません
でしたが……(しかし広告には明記してあ
るので製品版にはきっと入っているでしょ
う)。やはり,いまとなっては PIC が X 68000
の画像フォーマットの標準!:なった感があ
る昨今,ほかのツールの皆さんにも見習っ
てほしいものです。
あと,ちょっと難をいいますと,デイス
クへの書き込み&読み込みが少々遅いです。
GL 3 など平気で1分以上かかったりします。
ほかがいいだけに,ついついいってしまう
私です。
さて,そのほかの点はきちんとツボを押
さえて作られており,プリンタにも幅広く
対応していますし,設定すればなんとビデ
オスキャナも使えます0少々残念な点とし
ては 512 X 512 モード多値のフアイル書き込
みでは画面で見たどおり少し縦に潰れたま
ま SAVE してしまいます。 512 X 512 が一番
よく使うモードでありますし,この辺はも
う少し頑張ってほしかったのですが……。
それと,基本的にマルチウィンドウなの
ですがそれぞれのウインドウの位置が固定
されているのでやや不自由さを感じます。
特に ユーザー 曲線の定義な ど は実際に表示
されている絵を見ながら行いたい作業です
ので,設定中でもウインドウや スクロール
バーが動くようにしてもらいたかったもの
です。しかし, Z’sSTAFF PRO -68 K やマジ
ックパレット などのグラ フィックツールの
スキャナウインドウよりはずっとかゆいと
ころに手が届く出来になってるのが嬉しい
ところで'す。
これは使える
ハンデイスキャナというと,これまでは
結構ちゃちな物というイメージがあったの
ですが,このファインスキャナは見事にそ
のイメージを払拭するだけの性能を持って
います〇1月号付録ディスタのカット取り込
みのときに初めて触ったあの感動はちょっ
図1ペン画の取り込み例(単純2値化)
と言葉にしがたいものがあります。とにか
く取り込み画像が綺麗なのです。もちろん,
CZ -8 NS 1 などの机置き型スキャナ(そん
な名称あったっけ!?)に比べると「カラー
取り込みができない」「あまり大きなサイズ
の絵は読み込めない」などの点があること
はあります力 5 ',カラー取り込みなどを使う
人などは滅多にいないし(レイトレのマッ
ビング データを 作るくらい ?) ,ハンディタ
イプのメリットである小回りのよさがそれ
を補って余りあると私は思うのです。それ
になんといっても39,800円という価格設定
が魅力的です。高速取り込みのための専用
ボード,賢い付属ソフトつきでこの値段は
絶対安い!
ということでこのファインスキャナはお
勧めですので全国2千万人の(おい増えてな
いか? ) CG 職人の皆様のお手元にぜひこの
1台を(なんか通信販売の宣伝みたいにな
ってしまいましたね)。このスキャナの登場
により良質の CG が限りなく増えることを
願う私でした。
Fine Scanner - X 68 HGS -68 39,800円
(専用ボード,ソフト付き)
HAL 研究所003 (3252)5561
特集 Fine Scanner -68 X 57
シミ!レージョンプログラミング入門
シ SuP ■ジョン I 妹来をひらく
Kamon Masato
華門真人
今回は「連続変化型シミュレーションに挑戦 J ということで,
電熱式温水器の制御を取り上げてみました。と,本題のほうは
そういう内容なのですが,前半部分はシミュレーション関係の
害箱の紹介となっていますので,興味のある方はどうぞ。
正確にいえば,ではある力 ? ,’90年代と
いうのは1991年から始まる10年間のことで
ある。つまり,ようやく名実ともに’90年
代を迎えたということになる。
ここ数年で世界は大きな変化を遂げた。
統ードイツが誕生し,アメリカカ ? ソ連に最
恵国待遇を与えるようになるなんて,少し
前まではまさしく夢のような話だった。
21世紀まであと10年間。夢の世紀だった
21世紀も近い将来には現実となる。もっと
も,未来は必ずしも明るいわけではないこ
とも確かだ。
最近の世界平和の潮流はひとりの地球人
として非常に喜ばしく思っている。しかし,
またいつ第2のサダム•フセインが現れな
いとも限らないのだ。
問題はそれだけじゃあない。人口爆発,
そしていまや世界共通の問題である環境破
壊。「夢」の21世紀までの最後の10年間で
ある’90年代。いま,僕たちはこれからに
ついて真剣に考えなければならないときに
さしかかったのではないだろうか。
/ Ski /
今回は妙に真面目な話でスタートした0
とはいっても別に社会問題入門に衣替えし
てしまったわけじゃあない。安心してほし
い0
問題は雪不足にあるのだ。皆さんご存じ
のとおり“今年も”雪不足のようだ。これ
で4年連続ということになる。おまけに昨
年は記録的に暖かい1年だった。
これは異常なのではないだろう力、。もっ
とも最近はあまりにも異常ずくめで,何が
正常で何が異常なのかが判然としないよう
な気もするけれどね。
とにかく最近は異常が多すぎる。ここま
でくると僕みたいな小市民でも地球の将来
が心配になってしまう。その思いが冒頭の
—節を書かせた,というわけなのだ。
もっとも,これは異常ではないという話
もある。なんでもこれは地球のサイクルの
一環なんだそうな。
とはいえ,いままで人間が環境に気をつ
かわなさすぎた,というのも事実だと思う。
これからは「地球にやさしい」生活をしよ
うと決意をする筆者であった。
まあこんな決意をさせてしまうほど,雪
不足というのはスキーヤーにとっては深刻
な問題なのである。とくに僕のようにチー
ムに所属して滑りまくっているスキーマニ
アには。
そんなフラストレーションを解消すべく,
ここで1冊の本を紹介しよう。清水史郎氏
による r スキーの 科学』 という本である。
名は体を表すとの言葉どおり,これはスキ
一に関する本だ。それ以上でも,それ以下
でもない。
もっともここで紹介するのだから,スキ
一だけ,というわけでもない。まあ,あま
りじらしてもしようがないから,そろそろ
秘密を明かすことにしよう。
この本はシミュレーションを用いること
によってスキーを科学してしまおうという
なかなか ュニークな 発想のもとに書かれて
いる。
ここで シミュレーションと 聞いて,何を
想像されただろうか。正解はなんと ロボッ
卜なのである 0 ロボットとシミュレーショ
ン,いったいどんな関係があるのだろう,
と思われるかもしれない。確かにいきなり
ロボットによるシミュレーションと聞いて
もピン!:こないだろう。
それでは順序立てて説明してみよう。シ
ミュレーションというのは何通りもの方法
があるというのは第1回でもお話ししたと
思う。前々回,そして前回ではその何種類
もあるシミュレーションの中から,コンビ
ュータ上でシミュレーションを実現するた
めに「数学的モデル(数値モデル)」を見
てきた。
すなわち,現実を数値に置き換えること
によってシミュレートする方法を考えてき
た0ところがひと口にシミュレーションと
いってももうひとつ大きな流れがある。
記憶力のいい方は覚えていらっしゃるか
もしれない。「物理的モデル」というのが
その名前だ。
「物理」と聞くだけでおそれおののいて
しまう文科系の方(もっともそれなら数学
もダメか),心配することはありません。
ここでいう物理とは「実在のもの」という
ぐらいの意味なのだから。
つまり,現実を数値に置き換えるのが数
学的モデルだとすれば,現実を実在のなに
かに置き換えてシミュレーションを行うの
が物理的モデルというわけ。
そろそろわかってきたかな。そう,この
本では現実のスキーをロボットでシミュレ
一卜しているのだ。と聞くといかにもすご
そうなロボットを思い浮かべてしまいそう
だが,さにあらず。
本を開けてびっくり,おそれおおくも人
間様をシミュレートするのは身長 30 cm の小
さなロボット君なのだ。なんでそんな小さ
なロボットでスキーヤーを真似できるんだ
ろう,そう思いませんか。
ゲレンデでエキスパートの華麗な滑りを
見て感動する。スキーヤーなら誰でもが経
験することである。ああ,いつかは自分も
ああなりたい。ボーゲンでこけてばっかり
いる現実を忘れ,しばしエキスパートにな
った自分の滑りを思い描く。
まあ,想像するのは自由ですから。ちな
みに,こうしてエキスパートを夢見た人は
いつしか3タイプに別れていく。ひとつは
夢を追いつづける体育会系タイプ,もうひ
とつはいつしか上達をあきらめる極楽スキ
ーヤータイプ,そして最後が才能がないの
かいつまでたってもこけつづける「ゲレン
デ障害物 j タイプである。
話がそれたが,上級者の滑りを見て いる
と, 体が実に フレキシブルに 動いて いるの
がわかる。雪面を捉えつづける足,ビクと
もしない上半身,そして華麗にストックを
58 Oh!X 1991.2.
突〈腕,さらに顔はしっかりと前方を見据
えている。
よりによって,そんないかにも複雑そう
なものをたかだか身長 30 cm のロボットでシ
ミュレートしようというのだ。嘘だろう,
僕だって最初はそう思った。
だが,そのロボットはボーゲン(いちば
ん基礎的な滑り方)から始まって,パラレ
ル(初心者の憧れの的,これをマスターし
ていれば一人前だ),さらにはウェーデル
ン(全スキーヤーの目標,これであなたも
エキスパート!)までちゃんとこなしてし
まうのだ。まさし〈すごいとしかいいよう
がない。
しかし,これにはちゃんと秘密がある。
秘密といっても,もちろんズルをしてるわ
けじやない。そこにはすべてのシミュレー
シヨンに共通の,成功の秘訣とでもいうべ
きものがあるのだ。
Secret
さて,その秘訣とはいったいなんなのだ
ろう。それはひと言でいえば「物事をでき
るだけ簡単に捉えること」ということにな
る。
これはちょっと変に聞こえるかもしれな
い0現実をうまくシミュレートするのに,
できるだけ簡単にしろだって,というふう
に。
普通に考えてみれば,現実をうまくシミ
ュレートするにはできるだけ細かく現実を
模倣するほうがいいように思える。確かに
の本質は股関節にあるのだ。それは股関節
「だけ」をシミュレートしたロボットが立
派にウェーデルンをこなして証明してくれ
る。
この本はほかにもコンピュータによるス
キーのシミュレーションにも少し触れてい
るし,スキー好きの人ならば読んで損はな
いと思う。
しかし,この本をここでわざわざ取り上
げたのは,ゃはり物事の本質を捉えるとい
うシミュレーションの得意技が見事なまで
に証明されているからにほかならない。
ここでお得意の一般化をしてみようか。
どうもシミュレーションなどというと,と
にか〈現実をどこまで細かく真似するか,
ということに気をとられてしまいがちだ。
でも,リアルであることがすべてではな
いのだ,と思う。たとえば,ゲームでジャ
ンボジェットのフライトシミュレータを作
ったとする0いくらリアルとはいってもあ
の何百侗もあるスイッチをいじらなきゃな
らないとすると,プレイする前から興醒め
だよね。必要なのは肝心の飛ばす部分なの
だ。
要は,シミュレーションもバランスなの
だと思う。だいたし、の傾向を知りたいので
あれば,必ずしもリアルにこだわる必要は
ないのだ。前回,取り上げた料金所モデル
はリアルとはとてもいいがたい。
それでも傾向はつかめるし,どう改善す
ればいいのかだって知ることができる。ス
キーロボットだってそうだ。とても人間と
は似ても似つかないけれど,本質は捉えて
これにも一理はある。
しかし,物事を簡単に捉えることによっ
て初めて見えてくるものも,存在する。
初心者が上級者の滑りを見ると,その全
身のすばらしい動きを見て,いったいどこ
を真似すればいいのかわからなくなってし
まう。全身に気をとられるあまり,本質,
うまく滑るための本質,を捉えることがで
きなくなってしまうのだ。
ところが,そのうまく滑るための本質
「だけ」を真似したロボットだったらどう
だろう。これなら本質を見極めることがで
きそうだ。
なにも複雑であることがいい,とは限ら
ないのだ。単純であることの良さというも
のだってある。なによりも単純なモデルで
あれば,理解することも,そしてモデルを
シミュレートすることも容易なのだから 0
さて,そのロボットに教えを乞えば,ス
キーというのは結局股関節の動かし方いか
んなのだ,ということになる。つまり滑り
いる。
よく,シミュレーションをしようとして
いるのに,あまりにも現実に近づけること
にこだわりすぎて肝心のシミュレーション
を実現できないでいる人がいる。そんなに
リアルにこだわることはないんじやないの
かな,と思うのだ。
逆に,必要であればあくまで現実にこだ
わることも重要だと思う。必要ならば,だ。
たとえば,同じフライトシミュレータでも
パイロットの練習用に使うのであれば,や
っぱりできるかぎりリアルじやなきや困る
(あれ,練習と違うなあ,とかいわれて墜
落された日には大変な騒ぎだ)。
Driving
ついでだからも,1冊,別の本にも触れ
ておこう0舘内端氏の『クルマの速さが
見えてきた』という本である。こういう題
名だと,おおドラテク(ドライビングテク
ニック)の本か,と思ってしまう。
よくあるよね,「無敵のドリフトテクニ
ック」とか,「4 WD 乗りこなしマニュア
ル」とか(かくいう僕もこの類の本を何冊
か持っている)。
しかし,この本はひと味違う0クルマの
走りを科学的に分析し,分析を通じていか
に速く走るかを考えているのだ。ご存じの
ように,クルマだって数式で表すことがで
きる。いちばん簡単なのが,例の,
F = ma
という公式。力は質量に加速度を掛けたも
のに等しいという,中学で習うアレだ0
この公式からも,同じ力ならば質量が小
さいほうが加速度が大きくなる,というこ
とがわかる。言い換えれば,同じエンジン
ならば車重を蛏くしたほうが速くなるとい
うことだ。
もっとも,この公式は簡単なほうだ。実
際のクルマはもっと複雑なバランスの上で
成り立っている。とはいえ,すべてを真似
しなくても本質さえ見極めればクルマをう
まくシミュレートしてやることができる
(先ほども述べたように,重要なのは本質
なのだから)。
実際,この本ではコンピュータシミュレ
ーションに よって, クルマの 「速さ」 とい
うものを解析している。コンピュータシミ
ュレーションによる 0-400 m 加速(静止状
態から 400 m 走るのにどれだけの時間がか
かるのかを競う)や,サーキットでのラッ
ブタイムシミュレーションなど,なかなか
ワクワクするようなことをやっている。
ただ残念なことに,シミュレーションの
詳しい方法などまでは書かれていない。一
般向けの本だし,スペースの制限もあるだ
ろうから,無理もないとは思うのだが。
しかし,そのシミュレーションの結果だ
けでも十分に興味深いものがある。いまあ
るクルマをチューンアップさせる方法とし
て,
1) 軽量化
2) パワーアップ
3) タイヤのグリップを上げる
の3つの方法がある!:する。これらのうち,
どれかひとつによってチューンアップされ
たクルマでサーキットを走るとすると,ど
のチューンアップがいちばん効果を発揮す
るのだろうか。
多くの人が 2) のパワーアップと答える
だろう。普通そう思うよね。ところがシミ
ュレーションの結果は,驚くなかれ, 3)
なのである。
細かいことは実際に読んでもらうとして,
シミユレーシヨンプログラミング入門 59
このシミュレーシヨンを裏づけるひとつの
事実を述べておこう。
2年前に F 1 (フォーミュラワン)で夕
ーボ エンジンが 禁止されたことを覚えてい
らっしゃるだろうか。あの禁止によって,
F 1 のエンジンの 出力は 1000馬 カオーバー
からせいぜい 700 馬力ぐらいへと大幅にダ
ウンしてしまった。
ところが,ところがである。 エンジンの
出力が大幅に落ちたにもかかわらず,サー
キットでのラップタイムはどんどん更新さ
れつづけているのだ。
なぜか。これはタイヤの性能によるとこ
ろが大きい,といわれている。つまり,以
前はタイヤがプアなので1000馬力のうちか
なりのパワーが無駄になっていたのに対し,
いまはタイヤが 700 馬力のすべてを発揮で
きるようになった,ということらしい。
もちろん,空力の向上とか,シャーシの
進化,ドライバーの腕なんかも関係あるの
だけれど。
Continuous
だいぶ前置きが長くなってしまった(そ
れともいままでが本題だったのかも)。今
回は連続変化型のシミュレーションに挑戦
してみようと思う。
なぜか。早い話が先のサーキットシミュ
レーションに刺激されたのだ。サーキット
シミュレーションをするとなると当然,時
間を中心にシミュレートする必要がある0
すなわち,連続変化型シミュレーションと
いうことになる。
第1回をお読みになった人はご存じだろ
うが,実は僕には連続型シミュレーション
を断念したという忌まわしい過去がある。
にもかかわらず,またトライしようという
のである。
それだけ サーキツトシミュレーシ ョンに
惹かれたってこと。それに,いやしくもコ
ンピュータシミュレーションを語るのであ
れば,やはり連続型は欠かせないという事
情もある。
考えてみれば,最初にシミュレーション
をしようとすれば,まずたいていは連続型
になるのではないだろう力、。現実の世界で
は(当然)時間は連続なもの,その現実を
シミュレートしようとすれば十中八九は連
続型で考えはじめることになると思う。
なかには連続型に早々と見切りをつけて,
離散型に活路を見いだす僕のような人間も
いるだろう。しかし,普通の人間の感覚と
してはやはり連続型のほうがなじみやすい
だろう。
やはり連続型は避けては通れないようで
ある。もっとも,なじみやすいが難しいと
いうのも事実。だからいきなりサーキット
シミュレーション というわけには いかない
だろう(ガタツ,期待させてゴメン)。こ
こでは比較的簡単なモデルで,連続型 シミ
ュ レーシヨンの 「 HOWTOj を見ていく
ことにしよう。
Heater
モデルとして何を取り上げるか。それが
まず大きな問題となる。やはり身近で感覚
的に理解しやすいものがいい。
というわけで,ここでは,
「電熱式温水器」
なるものについて考えてみよう。え,電熱
式温水器ってなんだ,って。まあ,早い話
がシャワーのこと。電気を使って水を温め
るシャワーだと思ってくれればいい。図1
のようなものだ。
普通僕たちがシャワーを使うとき,どう
やって温度調節をしているのだろうか。バ
ルブを開け閉めしてだって。それは当たり
前。ここでいいたいのはどのような考え方
をして温度調節をしているか,ということ
だ。熱すぎたらバルブを閉めて,ぬるかっ
たらバルブを開く。おおかたはそれぐらい
しか考えていないだろう。僕だってそうだ。
しかし,半無意識のうちに,僕たちはかなり
高度な制御を加えているのだ。
シミュレーションを 通してそれらを明ら
かにしていこうと思う。
本氺 *
離散型でも連続型でも同じことだけれど
も,シミュレーションを実現するためには
まず対象となるものの特徴を捉えてモデル
を作り上げなければならない。
今回の対象である温水器について考えて
みると,人間が操作する場合は図1のよう
になるが,人間の代わりにコンピュータが
制御するようになると図2のようになる。
このコンピュータによって制御されたシス
テムをシミュレートすることにしよう。つ
まり,図2がシミュレーションモデルにな
るわけた、
図2のモデルは大きく 2つの要素に分け
て考えることができる。制御しているほう
とされているほうだ。ここではまず制御さ
れているほう(制御対象)について考え,
次に制御について考えるということにしよ
5〇
それではまず,制御対象について順を追
って考えてみよう。入力に一定の水温の水
が流れ込んでくる。この水がヒーターのところ
まで流れて込んできて,ヒーターによって
温められる。そして,その温められた温水
がパイプを通って出力に出てくるというわ
けだ。
というと簡単だが,そうひと筋縄にはい
かない。まず第一に,ヒーターで加熱され
てもすぐに温水にはなってくれない,とい
図1温水器モデル
図2コンピュータ制御
60 Oh ! X 1991.2.
う問題がある。やかんでお湯を沸かすのと
同じように,水というのは徐々に温まって
いくものなのだから。
専門用語でいうと,これは「1次遅れ」
というものである。ま,口で言うより目で
見たほうがわかりやすいだろう。リスト1
を入力してほしい。今回のプログラムは X
1用のみである。もちろん, X - BASIC に
も来月対応する予定だ。やはり恵まれない
環境にあるものを優先すべきでしょう 。X
68000 ユーザーの方, ご了承を。
実行するとまずパラメータの入力画面に
なるはずである。ならなかったらそれは入
カミスです,はい。パラメータの意味はあ
とで説明するとして,1<^,1^,1<:〇1を0に,
そして Kc を60に設定してほしい。そして,
実行。画面に出たものが1次遅れというも
のである。
画面は何を意味しているのだろうか。つ
まりこういうことである。いま,水温が20
° C で,目標値は 80° C , その差は 60° C だ。そ
こでその 60° C の差を埋められるだけの力で
ヒーターを加熱するのだが,相手は水だ。
そうそう簡単には温まってくれない。画面
のように,徐々に温まって,目標値 80° C に
近づいていくのだ。
プログラムを入力しなくてもわかるよう
にちゃんと図を用意した。図3を見ていた
だければ理解してもらえると思う。どの図
でもそうだけれど,わかりやすくするため
に多少のデフォルメがある。一応それを頭
に 入れて おいて ほしい。
さて問題はこの1次遅れだけではない。
ムダ時間というものもある。これはどうい
うものなのだろうか。とりあえず,ヒータ
一で水が温められ,温水ができたとする。
図31次遅れ系
図4ムダ時間系
しかし,その温水もすぐには出力には出て
こない。
なぜなら,ヒーターの出口から出力にた
どりつくために一定の時間が必要になるか
らである。この一定の時間がムダ時間とい
われるものである。
これも実際に目で見ていただこう。先ほ
どプログラムを実行した結果をもう一度見
てほしい。パラメータは1次遅れのときと
同じ。出力が温まりはじめるまでに,少し
タイムラグがあることがわかるだろう。こ
れがムダ時間という代物だ。図4を見ても
わかるだろう。
1次遅れとムダ時間,これでとりあえず
制御対象の特徴はつかめたことになるわけ
だ0
wisdom
それでは次は,肝心の制御について考え
てみることにしよう。
いちばん簡単なのは先ほどやったように,
目的の温度に上げられるだけの一定の力を
ヒーターに加えつづけてやることだ。もっ
とも,これでは1次遅れとムダ時間によっ
て,図5のように目的温度に達するために
随分時間がかかってしまう。
温かいお湯が出て〈る前に,風邪でもひ
きかねない(とはいえ, 80 °C のシャワーを
浴びる馬鹿もいないか)。
そこで「賢い」制御が必要になるわけだ。
もっとも,僕たちはその制御を無意識のう
ちにこなしているのだからたいしたものだ。
ここで制御を分析するためには,その無意
識にやっていることを明らかにしなければ
ならない。
まず第一に思いつくのは,「現在の値と
目標値との差(偏差)に応じてバルブを調
節する」というものだ。すなわち,目標値
との差が大きければバルブを開き(大パワ
一で加熱する),差が小さければバルブを
閉じる(あまり加熱しない)というものだ。
さらに現在値が目標値を上回ってしまった
場合(偏差が負になった場合)には,それ
に応じて冷やすということになる(おいお
い,ヒーターでどうやって冷やすんだ!
まあここらへんはモデルということで笑っ
て許してほしい)。
これがいわゆる「比例制御」というもの
だ。これは理解しやすいだろう。差に応じ
てコントロール する。当然のなりゆきだ。
ところがこの制御には大きな落とし穴が存
在する。
お気づきだろう力、,この制御では,目標
値との差(偏差)がなくなるとまったくカロ
熱しなくなってしまう。すなわち,せっか
く目標値に達したものが,また温度が落ち
てきてしまうのだ(どんどん水が流れ込ん
でいるのに加熱しなくなれば,当然,また
水温は落ちて〈る)。
その結果,決して目標値で安定すること
はなくなる。それどころか,目標値より低
いどこかに安定してしまうのである。つけ
加えれば,このときの目標値と安定値の差
が永久偏差と呼ばれるものである。
さっそくシミュレーションを見ていただ
こ•う。今度はパラメータを Kp = 45 ,Ki =
0, Kd = 0 , Kc = 0とセットしてほしい。
いったん目標値に達した水温がまた落ちて
きてしまうのがおわかりいただけるだろう
(図6)〇
比例制御ではなにも制御しないのに比べ
て早く温度が立ち上がるが,永久偏差が生
じ,目標値には安定しない。それではどう
するか。ここで第2の制御を導入しよう。
すなわち,「偏差に応じた速度でバルブを
調節する」制御である。
比例制御との違いがわかるだろう力 1 ,上匕
例制御は偏差に応じた量でだったのが,こ
の制御では偏差に応じた速度に変わってい
るのだ。
具体的にいえば,偏差が大きければ急い
でバルブを開ける力す,偏差が小さければ,
ゆっくりと落ちついてバルブを開けるとい
うことになる。
このような制御を「積分制御」と呼ぶ。
なぜ積分なのかはいずれわかるからいいと
して,この制御の成果を見てみよう。今度
図5制御なし
目棵値
初期値
図6 P 制御
目標値
初期値
シミュレーシヨンプログラミング入門 6 i
はパラメータを Kp = 45, Ki =5, Kd =
0, Kc = 0 としてほしい(図 7)。
ちゃんと目標値に安定しているのがわか
るだろう。これでようやくまともな制御が
できるようになったわけだ。
ところが,実はもうひとつ制御方式があ
る。積分とくれば当然「微分制御」があっ
てもいいだろう。この制御は「偏差の変化
速度に応じてバルブを開け閉めする制御」
ということになる。
具体的にいうと,現在はまだ目標値より
高くても,傾向として水温が下がりつつあ
るときには,将来下がりすぎることを予想
して,バルブを調節するような制御という
ことになる。
これは将来を予想しながらの制御だから,
より高度な制御といえる。この制御がなく
ても,比例制御と積分制御だけで,目標値
に達することはできる。しかし,この制御
も併用すれば,それだけ安定した制御が可
能になるといえる。その申:果を図8に示し
ておこう。
こうやって3つの制御を見てきたわけだ
が,
比例 ( Proportion )
積分 (integral calculus )
微分 (Differential calculus )
の3つの単語から,これら3要素すべてを
利用した制御を PID 制御と呼ぶ。同様にし
て,比例制御だけの制御を P 制御,比例制
御と積分制御で PI 制御ということになる。
ここで制御なしと, P 制御, PI 制御 , P
ID 制御の比較図を図9にあげておく。こ
うやって直接比較すると,その違いがよく
図フ PI 制御
図8 PID 制御
目標値
初期値
わかるだろう。
参考までにそれぞれの特徴を述べておこ
ラ。
• 制御なし
実にゆっくりと目標値へと向かう。
• P 制御
制御なしよりははるかに早く H 標値に向
かう。しかし目標値には安定しない。
• PI 制御
P 制御と同じように早く目標値に向かう。
偏差の速度にも応じて制御するため,目標
値に安定する。
• PID 制御
PI 制御と同じように早く目標値に向か
う。偏差の将来を見越した制御を行うため,
PI 制御よりも早く目標値に安定する。
P , PI , PID と進むにつれて,より高度
な制御になっていっていることがおわかり
いただけるだろう。
and
以上のようにして制御対象と制御の2つ
の要素を見てきた0これでシミュレーショ
ンのモデルを把握できたことになる。
モデルを把握したら,次にやるべきこと
は当然,モデルをシミュレーションプログ
ラムへと•置き換えていくことだ。方向自体
は前回までの離散型とあまり変わらないこ
とに気がついたろうか。そう,大筋では離
散変化型も連続変化型も同じ道筋を通るの
だ。コンピュータ上でシミュレーションを
実現するという点でまつたく同じなのだか
ら。しかし,どこかで差が出てくるはず。
ずばり,差はこれ以降で出てくる。すな
わち,連続変化モデルでは時間を中心にモ
デルが記述される。たとえばの話,入力を
図9制御を比較してみる
x ( t ), 出力を y ( t ) とすると,
a Xdy ( t )/ dt = x ( t )- y ( t )
のようにモデルの状態が時間の関数として
表される。
ということは,この数式を解くことに
よってモデルの状態を知ることができる,
ということになる。えっ,この式を解くの,
とおそれをなす方もいらっしゃるだろう。
確かにこんな微分方程式を解くなんて,楽
なことじゃあない。
それじゃあ数学が得意じゃないと駄目か,
とあきらめるのはまた " 早い。ちゃんとした
抜け道があるのである。正攻法が駄目なら,
ほかの道を探せということだ。
正攻法がまともに式を解くことだとする
と,抜け道というのは,数値的に微分方程
式を解いてしまおうという方法だ。詳しい
説明は次回に譲る力 5 ',この方法ならば,た
いていの微分方程式は簡単に解くことがで
きる。微分積分の専門知識など不要。必要
なのは本当に簡単な常識だけだ。
というところまできたところで,今回は
お開きにしよう。最後に,プログラムのパ
ラメータの説明だけしておこう。
• CLS
0ならば前の画面を消さずに,上書きす
る。0以外では画面を消去してからシミュ
レーシヨンを実行する 0 初期値は1 0
• LINE
結果の描画モードを設定する。0ならば
点で結果を表示し,0以外であれば線で結
果を表示する。初期値は1。
• Target
制御の目標値,初期値は80。
• Step
時間の単位。時刻は Step ごとに刻まれ
る。初期値は 0.1 であるから,時刻は 0.1 秒
62 Oh ! X 1991.2.
ずつ進んでいることになる。
• Kp , Ki , Kd , Kc
制御のパラメータ。0以外の値であれば,
その制御が行われる。すなわち制御なしで
あれば Kc 以外が0, P 制御は Kp 以外が0
ということになる。
さらに PI 制御では Kd , Kc が0, PID 制
御では Kc だけが0ということになる。も
ちろん0以外の場合,値によって制御の効
き方が変わってくる。
初期値はそれぞれ45,5,0.5,0。
• k,a
これは次回に説明しよう。もっとも,値
をいろいろと変えてみてどんな働きをして
いるのか調べてみてもいいだろう。
• Xamp , Yamp
結果を表示する際の, X , Y 方向の倍率
を表す。初期値はそれぞれ100, 2。
今回のプログラムでは最初にパラメータ
をセットした後,シミュレーションを実行
する。パラメータは自由に設定できるから,
いろいろな値を代入してみて,どんな動き
をするのか見ておくといいだろう。
NEXT
今回は,連続変化型シミュレーションに
ついて考えてみた。とはいっても,まだよ
うやくモデルを把握した段階にすぎない0
次回はこれをもとにいかにプログラムを
作っていくかということを考えていく。
さらに次回は流行のファジィにもふれた
いと思っている。なんでも,うまくファジ
ィ制御を行えば,今回の PID 制御よりもさ
らに早く目標値に安定させることができる,
というのだ。これをほおっておく手はない。
この連載ではシミュレーションに関係する
ものとあらば,なんでも取り上げていくつ
もりだ,期侍してほしい。
シミュレーションは現実では実現困難な
ものを仮想の世界で実現させるためのもの,
そして未来のことを知るための道具だ。そ
の意味で大いなる可能性を秘めたものであ
るといえる。未来を知ること,それは人類
の永遠の欲望なのかもしれない,と思いつ
つ,それではまた来月。
参考文献
• 「スキーの 科学 」 清水史郎著光文社
• 「クル マの 速さが見えてきた」館内端著
光文社
• 「ディジタル制御システム」 b . C . クウ 著
ホルト•サウンダース•ジャパン
• 「ファ ジィ 制御」菅野道夫著日刊工業新聞
社
• 「化学工学実験1989」東京大学工学部化学
工学学生実験室
リスト1
1000
9 Simulation model Cl
ver.1.00
1010
»
1020
f PID Controller for
XI basic
1030
1040
• 1990.12 (C)
Caroroon
1050
1
2000
9 intialize
2010
WIDTH 80,25,0,2: KLIST
0: KMODE
2020
•width 80
2030 INIT
2040 DEFDBL d,i,x-z
2050 target =80
2060 eels =1: sline =
2070 k =.1 : a =1
2080 kp = 45: ki = 5:
2090 atp =.1
2100 ampx = 100: arapy
2110 DEF FNx(t) = 20
3000 *
3010
3020
3030
3040
3050
3060
3070
3080
3090
3100
3110
3500
3510
3520
3530
3540
3550
3560
3570
3580
3590
3600
3610
3620
3630
3640
3650
3660
3670
3680
3690
3700
3710
3720
3730
3740
3750
3760
4000
4010
5000
5010
5020
5030
5040
5050
5500
5510
5520
5530
5540
5550
5560
5570
5580
6000
6010
6020
6030
6040
6050
6060
6070
6080
6090
6100
6110
6120
6130
6140
6150
6160
6170
6180
6190
6200
6210
6220
6230
6240
6500
6510
6520
6530
6540
6550
REPEAT
GOSUB 6020
IF sole THEN CLS 0
t=0
idlzo = 0: ido = 0 : izo = 0
x : FNx(0)
yl=x : y2 = yl:y2o = yl : y3 = y2o
do = target - y3 : zo = kp*do + kc
mx2 = 0: myl2 = 200 - ampy*target
my22 = 200 - ampy*x: my32 = 200 - arapy*y3
IF Bline THEN GOSUB 5500 ELSE GOSUB 5020
'main
WHILE
639) AND INKKY$
t*ampx
t = t + atp
x 二 FNx(t)
yl=x
y3 = y2o
d = target - y3
id = ido + .5 本 stp 拿 (do + d)
dd = (d - do) / atp
z = kp*d + ki 拿 id + kdtdd + kc
iz = izo 4- ,5 拿 Btp 拿 <zo + z)
dlz = k 拿 {a*iz - (idlzo + .5<8tp*dlzo)) / (1 + .5<stp*k)
y2 = dlz + yl
IF sline THEN GOSUB 5500 ELSE GOSUB 5020
ido = id: do = d
izo = iz: zo = z
idlzo = idlzo + .5tstp* (dlzo + dlz) : dlzo = dlz
y2o = y2
WEND
LOCATE 42,14 : PRINT "Do you need Hardcopy (y/n) n"
LOCATE 69,14: INPUT '*" ,sure$
IF INSTR<"Yy ン ,. ,LEFTS (sure$ ,1))THEN GOSUB 4000
LOCATE 42(14: PRINT "Do you wanna finish the job (y/n) n"
LOCATE 76,14 : INPUT M ",aure$
UNTIL INSTR{"Yy ン " , LEFT$(sure$,1))
PRINT CHR$(&HB) : END
LOCATE 42,14: PRINT "PID Control Simulator ..
HCOPY 4 : RETURN
9
f drawing results
PSET 拿 ampx , 200 - ampy<target ,1}
PSET (t 拿 ampx 9 200 - ampy 拿 x , 5)
PSET (t 拿 aropx • 200 - ampy<y3 , 2)
RETURN
9 drawing results - line
mxl=t 拿 ampx: rayli = 200 - ampy<tar«et
my21= 200 - ampy>x : my31= 200 - ampy 拿 y3
LINE (idx2 , myl2) - (mxl,myll),PSET •1
LINE (mx2 , my22) - (mxl , my21) , PSET • 5
LINE (rox2 , roy32) - (mxl f my31),PSET , 2
mx2 = mxl
royl2 = myll: my22 = my21:my32 = my31
RETURN
9 set constant
REPEAT
CLS : LOCATE 40,12: PRINT •• r"
FOR j=l TO11
LOCATE 40 ,12 4 j
PRINT M l ,, ; STRING$(37 f M " > ;
NEXT
LOCATE 40,24: PRINT
; STRING! ( 37 t ,, - n
vr$ =
vr$ =
vr$ =
vr$
vr$
vr$ =
vr$ =
vr$ =
vr$ =
vr$ =
vr$ =
vr$
CLS ••: px = 42: py=16
LINE ••: px = 60 : py=16
STRINGS ( 37 f M - M ); り";
cvr=acls : GOSUB 6510: 8cls=cvr
cvr=aline : GOSUB 6510: aline=cvr
Target" : px=42:py=17 : cvr=target:GOSUB 6510:target=cvr
Step ’ •: px = 42: py=18: cvr=atp : GOSUB 6510: stp=cvr
Kp’. : px = 42: py=19 : cvr = kp : GOSUB 6510: kp=cvr
Ki ”: px=60 : py=19: cvr=ki : GOSUB 6510: ki=cvr
Kd ”: px=42: py=20 : cvr=kd: GOSUB 6510: kd=cvr
Kc": px=60 : py=20 : cvr=kc: GOSUB 6510: kc=cvr
k ”: px=42 : py=21 : cvr=k : GOSUB 6510: k=cvr
a ”: px=60: py=21 : cvr=a: GOSUB 6510: a=cvr
Xarop": px=42: py=22 : cvr=ampx : GOSUB 6510: anpx=cvr
Yamp M : px=60 : py=22 : cvr=ampy : GOSUB 6510: anpy=cvr
LOCATE 42,14: PRINT "Are you sure (y/n) y"
LOCATE 61,14: INPUT "",sure$
UNTIL INSTR<"Yy>",LEFT$(sure$ , U>
RETURN
LOCATE 42,14: PRINT LEFTS(vr$+ M ",6>+" : ";cvr
LOCATE 51,14: INPUT MM f cvr
COLOR 4 : LOCATE px f py: PRINT LEFTS (vr$ + .. ",6} + " : ";cvr;
COLOR 7 : LOCATE 42,14: PRINT STRINGS(36 f M ” >
RETURN
シミユレーシヨンブログラミング入門 63
魅力的なソフトがないので スーパーファ ミ コンを 買う
のはよそうと思っていた矢先,ドラタエ V の発表があっ
てあっさりと心変わりした中森章です。それにしても,
発売されたとはいえ,おもちゃ屋の店頭で見つけること
のできない スーパー フアミ コンが 手に入るのはいつのこ
となのでしょう。
さて,今回の テーマは 配列です。配列はすべての プロ
グラミングにおいて基本になるデータ構造です。今回は
配列のうちでももっとも基本的な一次元配列について学
んでいきましょう。なお,前回の予告では今月の テーマ
が配列と文字列ということになっていました力 ? ,予定を
変更して今回は配列だけです。文字列については今回と
次回で配列に関しての知識を深めたあとの次々回に説明
したいと思っています。
配列とは何か
以前も説明しました力 ? ,プログラムの基本はある変数
の値を加工して別の変数に格納することです。プログラ
ムではいろいろなデータ型の変数を扱いますが,変数の
中には本質的に同一のものが存在しています。それらの
変数をまとめて統一的に扱うためのデータ構造が配列で
す。
例として,何人かの人が受けた試験の得点を格納する
変数を考えましょう。単純に考えれば,1番目の人の得
点を格納する変数は markl , 2番目の人の得点を格納す
る変数は mark 2, 3番目の人の得点を格納する変数は
mark 3, ……というように別々に変数を宣言していきま
す。ここで,
markl , mark 2, mark 3,.
という変数はある試験の得点という意味で同一のもので
す。また,そのデータ型も同一のはずですね。今,試験
を受けた人が4人いるとして,試験の得点の合計を求め
ることを考えましょう。合計値を格納する変数を sum と
すると, sum を求めるためのプログラム(式)は,
sum = mark 1+ mark 2 + mark 3 + mark 4
となります。この場合,人数が 4 人ですから合計値をす
っきりとした式で表すことができますが,これが1000人
だった場合はどうでし.ょう。まず変数の宣言が大変です。
C 言語での変数宣言を考えると,
int markl , mark 2 , . , mark 999 , marklOOO ;
となり,とてつもない文字数です。また合計値を求める
場合も,
sum 二 marki + mark 2 + mark 3 十
.+ mark 999 -hmarklOOO ;
というように変数宣言と同じくらい(少し多い)の文字
数になってしまいます。こんな大変な思いをしてまでプ
ログラムを書く気は起こりませんね。そこで登場するの
が配列というわけです。配列とは,日常語と同じく,
順序を決めた並べ方(並べたもの)
という意味です。そして,その考え方は,
変数を順序だけで参照して扱う
ということになります。先の得点の例でいえば,
markl は1番目のデータ
mark 2 は 2番目のデータ
marklOOO は1000番目のデータ
として扱うのが配列の考え方です。これは変数を番号で
間接的に参照することにほかなりません。番号で参照す
るということは,その番号として整数型変数の値を使用
できるということです。番号を変数で指定できるとなる
と,先の例の得点の合計値は,前回学んだ繰り返し制御
構造を使って,
sum = 0 ;
for ( i = l ; iCIOOO ; i + + )
sum = sum-f i 番目のデータ] ;
と,いとも簡単に記述できてしまいます。そしてこのこ
と,すなわち,大量のデータを簡潔に扱うことこそが配
列というデータ構造が存在する意味なのです。
C 言語で配列を扱5
それでは, C 言語における配列の使用法を具体的に説
明しましよう。 C 言語で配列を扱うためには,
• 配列の宣言
• 配列要素の参照
• 配列の用途
を押さえておけば十分です。以下に順次説明していきま
しょう。
•配列の宣言
配列とはデータを いくつか 並べたものですから,配列
を宣言するためにはデータ(配列要素)のデータ型とデ
ータの個数(要素数)を決定することが必要です。これ
らが決まると配列は,
データ型名前[定数式];
という形式で宣言することができます 1 >。[と1で囲まれ
よラこそここへ C 言語
配列って何だろう(その1 )
Nakamon Akira
中森章
プログラミング言語を学ぶ人が,初めて具体的なデータ構造と
いうものに出会ろのがこの配列でしよラ。といっても難しい概
念ではありません。ここでは,背景となる考え方から学んでい
きましよろ。今回は一次元の配列です。
9NIWWVU 90 Ud
U
64 Oh!X 1991.2.
た定数式が配列の要素の個数を指定している部分です。
さらに,
名前[定数式]
の部分をカンマ「,」で区切って並べることで,同じデー
夕型の要素を持つ複数の配列を一度に宣言することも可
能です。ところで, C 言語では〜型の配列という言葉を
よく聞きますが,これは配列要素が〜型の配列という意
味です。
配列宣言の例を示しましょう。1000個の単精度浮動小
数点データ ( float 型)を配列要素とする配列 fpa の宣言
は,
float fpa [1000];
となります。また,配列 fpa と同時に10個の単精度浮動小
数点データを配列要素とする配列 fpb を宣言する場合は,
float fpa [1000], fpb [10] ;
となります。
これらの例を見てわかるように,配列の宣言は配列名
に [] が付随しているほかは変数の宣言とまったく同
じです。実際,配列の宣言とただの変数の宣言を,
float fpa [1000], fe,fpb [10];
というようにカンマで区切って同時に行うこともできる
ようになっています ( fe がただの変数です)。結局,配列
の宣言も変数の宣言の一種なのです。この意味で,当然
のことながら,配列の宣言はプログラム中で変数の宣言
をしている部分と同じ場所に書かなければなりません。
”ここではもっとも単純な場合の宣言を示してある。 c 言語では
ポインタの配列や関数の配列といった宣言も可能であるが,これら
については今後の連載で説明する予定である。
•配列要素の参照
配列を宣言するということは配列の要素を番号で参照
するということです。この考え方は C 言語に限らずすべ
ての列型を持つ)プログラミング言語で共通ですが,
番号の付け方は各プロダラミング言語で必ずしも同じで
はないので注意が必要です。 C 言語では配列要素を参照
するための番号(これを添字という)は0から始まりま
す。すなわち,1番目の要素を参照するときの添字は0
で,最後の要素を参照するときの添字は(要素数一 1)
です。
それでは,配列要素の参照方法です。 C 言語では配列
要素を参照するために専用の演算子が用意されています。
この演算子を使用して,配列名と添字を演算することで,
添字で指定する配列要素を参照することができるように
なっています。少し難しい表現をしてしまいました力す,
その内容はぜんぜん難しくありません。 C 言語で配列要
素を参照する演算子とは [] のことなのです。どこかで
見たことはありませんか。そうです,配列を宣言すると
きに要素数を指定する[と]は演算子としても使用され
るのです 2 )。
このとき [] 内には添字(を表す式)を指定し,それ
を配列名のあとに書きます。たとえば,
fpa [2]
という表現は配列 fpa の添字2 (つまり3番目の)の要素
を示しています。もし,この配列要素の値を1にしたい
のであれば,
fpa [2] =1;
という式を書けばいいですし,逆にこの配列要素の値を
別の変数 x に代入したいのであれば,
x = fpa [2] ;
という式を書けばいいでしょう。演算子などと難しいこ
とをいっています力 5 ',ごく自然な方法で配列要素を参照
できるのがわかるでしよう。
配列要素の参照の方法についてくどくどと説明してき
ました力 5 ',実用上は,
float fpa [1000];
という1000個の要素を持つ配列の宣言は,
fpa [0], fpa [1], fpa [2],. , fpa [999];
という添字で参照できる1000個の変数を宣言したのだと
思って差し支えないでしよう。
2) 配列宣言時の [] は演算子ではなく,単なる記号である。まぎ
らわしいといえばまぎらわしい。逆に, FORTRAN や PASCAL などほか
のブログラミング言語からの類似(宣言時に個数を指定する記号と
参照に使う記号が同じであること)と思えば当然である。
•配列の用途
配列の宣言と参照方法を押さえたところで,配列の用
途について考えましよう。
配列のイメージは番号(添字ですね)を付けられた変
数ですから,容易に考えられる用途は統計処理です。ち
よっと表現が大袈裟ですが,要は複数個のデータを番号
を付けて扱うことができるということです(先に述べた
試験の得点の合計を求める例もこれですね)。一連のデー
夕を添字付きで扱うことができれば,総和,平均,標準
偏差など統計量の計算は思いのままです。また,昇順,
降順のソーティング(並び換え)にも便利です。
配列のもうひとつの用途はテーブル,つまり表の実現
です。この場合,配列の添字は順番を示す単なる数字で
なくなんらかの意味を持っています。たとえば,配列の
添字が整数の集合を代表している場合を考えます。この
とき,ある整数値(これが添字になる)に対応する配列
の値は,添字である整数になんらかの変換を加えた結果
(難しい言葉でいえば写像)とみなすことができます。
具体例を示すと,
root [0] 力 ? 0.0
root [1] 力 ? 1.0
root [2] 力 5 ' 1.414
root [3] が1.732
であるような浮動小数点型の配列 root は添字で与えられ
る整数の平方根を値としています。これは平方根の表に
ほかなりません。また,添字を整数以外の項目に対応さ
せることもできます。たとえば,字0の値は身長,添
字1の値は体重,添字2の値はバスト,添字3の値はウ
エスト,添字4の値はヒップといラように考えることで,
配列をある個人に関するデータを示す表とみなすことも
できるのです 3 、
配列の用途を大ざっぱに分類すれば上の2つになりま
す 4 2つの違いはプログラムで配列の要素や要素の順
PROGRAMSING
ようこそここへ c 言語 6 b
3> 身長,体重,……など,ある I つの データに関する異なる属性を
まとめて表現する場合は構造体を使うのが一般的。
め実は,配列にはもう I つの用途がある。 C 言語では文字 ( char 型)
の配列で文字列を表す。この場合,配列の要素が変わることも要素
の並び方が変わることもないので一種の表と見なせないこともない。
文字列についてはのちの連載で説明する予定である。
配列の初期化
配列を使用する場合,特に配列を表として使用する場
合,配列要素にあらかじめ初期値を与えておきたいこと
があります。ここでは配列の要素を初期化する方法につ
いて説明しておきましよう。
配列の初期化は配列を宣言するときと同時に行います。
このとき,宣言のあとに配列要素カンマ「,」で区切った
初期値のリストを{と}で囲み,=でつなぎます 5 たと
えば,添字が月の番号 (1 月,2月という)を表し,配
列要素が添字で与えられる月の日数''(閏年は考えない)
を値とするような int 型配列 days を初期化するためには,
その宣言時に,
int days [13] ={ 0, 31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31} ;
と書けばよいのです。ここで配列の要素数が13個になっ
ているのは添字の上限を12にし,添字 n が n 月に対応す
序を変更するかしないかによります(要素や順序を変更
しないのが表です)。しかし,これはこういう使い方が多
いというだけで配列を用いるプログラムの書き方になん
ら制限を課するものではありません。
実際のプログラムでは配列を添字付き変数として使用
しているのか表として使用しているのか区別できない場
合のほうが多いかもしれません。また,配列の要素に関
しても,それがさらに配列であったり,構造を持った複
合的なデータ型だったりして複雑な使われ方をしている
ことが結構あるようです。それらは,見掛けは複雑です
(それだけいろいろなことに使えるということ)力 ? ,基
本的な考え方は上の2つの用途から大きくはずれるもの
ではありません。私たちの心づもりとしては,
•いくつかの変数を添字を付けて統一的に扱う
• 表を実現する
という必要があるときには配列を使用するということで
す0
るようにするためです。添字0の部分はダミーで使用し
ません。
配列の初期化においては,配列名から初期化の終わり
の}までがひとつの変数(配列)の宣言と見なせます。
したがって初期化付きの複数の配列の宣言をカンマで区
切ってほかの変数宣言と同時に行うこともできます。
int a [3] = {1,2, 3}, b,c [5], d [2] = {100,200};
という変数宣言の記述が何を意味するかは説明するまで
もありませんね。
ところで, C 言語では要素数を指定しない配列宣言も
許されます。これを不完全型(大きさが不定という意味)
の配列宣言と呼びます。不完全型の配列を使用するため
にはなんらかの方法で完全型にしなければなりませんが,
ここでは難しい話はやめておきましよう。不完全型の配
列を完全型にするためのひとつの方法が初期化であると
いうことを覚えておいてください。そのとき,初期化リ
ストの中の要素の個数が配列の要素数と見なされます。
int a []= {1,2,3, 4} ;
という不完全型の配列の初期化では,配列 a の要素数は
4個と見なされ,その要素である a [0 ], a [1 ],a
[2], a [3] の値をそれぞれ1,2,3,4に初期イ匕します。こ
の(初期化を付けた)不完全型の配列宣言は要素数が非
常に多い表を配列で実現するとき,あるいは要素数があ
とから変更される可能性のある表を配列で実現するとき
によく使用されます。
話は横に逸れますが,このような配列の要素数を計算
するためには sizeof という演算子を使えば簡単です。
sizeof とは変数の占める領域の大きさ(バイト数)を計算
する演算子ですから,
sizeof ( 配列名 ) /sizeof ( 配列要素のデータ型)
が配列の要素数になります。たとえば,
float fpa [ ] = {1.0, 1.4, 1.7,.} ;
と宣言されている配列の要素数は,
sizeof ( fpa )/ sizeof ( float )
という式で知ることができます。
5> 配列を初期化する要素の形式は定数式(コンパイル時に値が計
算できるもの)が基本である。関数の先頭で行われる(動的な)配
列の初期化ではその実行時まで値の決まらない式でも許される。つ
まり,
f ( x )
int x ;
{ int a [3] = { x + I ,x + 2 / x + 3};
のような初期化も可能である。 x + I , x + 2, x + 3 という値は関数 f が
呼ばれたときに計算され配列 a に代入される。このような初期化は
GCC ではもちろん可能であるが, XC では制限が付く。 XC の ver . I . O で
は動的な配列宣言を初期化することはできない。 XC の ver .2.0 では動
的な配列宣言の初期化は定数式のみが許される。
♦基礎力を高めよ
設問1次に示す配列の宣言が(文法的に)正しいとき
は〇,誤っているときは x をつけてください。
1) int x [ ] = {1, 2, 3,};
2) int y [2] = {1, 2, 3} :
3) int z [ ] = {2,};
4) int w [3] = {1};
ONIWSVSOU
o
66 Oh!X 1991.2.
/* 平方根を求める関数 sqrt を使うためのオマジナイ*/
#include < math . h >
int mark[J ={
60, 90,15, 81, 65, 100, 75, 81), 85, 72, 55, 60, 85,
77 , 10 , 48
int v[ sizeof (mark ) / sizeof ( int) ) ; /* 偏差値を入れる */
double heikin, /* 平均 木 /
hyojun, /* 標準偏差 V
bunaan, /* 分散 */
sum; /* 爸計 */
int n=sizeof(mark)/sizeof(int); / > 要 索数 */
main()
{
int i;
sum=0;
for(i=0;i<n;i++)
sum = sum + mark[iJ ;
heikin = sum/n; /* 平均を求める */
sum=0;
for(i=0;i<n;i++)
sum = sum + (markliJ-heikinmark[iJ-heikin);
bunsan = sum/n ; /* 分散というやつ本 /
hyojun = sqrt (bunsan) ; ft こ: が樣每偏差 */
for(i = 0;i<n;i + +) /* 偏差値の計篝です */
v[i] = (mark[i]-heikin)*10/hyojun + 50;
for(i=0;i<n;i++)
printf (•,番号 %d¥t : 得点 %d¥t :偏差値 %d¥n M ,
i, mark[i], v[i]);
printf { ,,平均 % f :棵準偏差 % f¥n", heikin, hyojun );
/*
配列で統計的な処理を行う
リスト1の実行結果
も覚えておきましよう。
籲配列を表として使5
いくつかの値に対する三角関数(正弦)の値を格納し
てある配列を使って,入力された任意の値に対する正弦
値を計算するプログラムがリスト2です0リスト2の
sinTab という配列には三角関数 sin への入力値を0から
tt /4 の範囲で0.01きざみに変化させたときの値が入って
います。すなわち,
sinTab [0] は sin (0)
sinTab [1] は sin (0.01)
sinTab [2] は sin (0.02)
sinTab [3] は sin (0.03)
Q
o
70
3
3
z
o
U スト 1
5) int v [3] = {1,};
6) intu [2] = {1+2, 3*4/2};
7) int a [2* 3+1]={0};
8) int b [3] = { };
9) int c [ ] = { };
10) int d [];
設問 2 次に示す配列要素の参照方法が(文法的に)正
しいときは〇,誤っているときは x をつけてください。
ただし,
int x ;
int array [3] = {1,2,3} :
がすでに宣言されているものとします。
1) x = array [2] ;
2) x = array [1]+2 ;
3) x = array [一 2] ;
4) x = 2 [ array ] ;
5) x = [ array ] 2 ;
6) x = [2」 array ;
7) array 乂 2] = x ;
8) 2 [ array ] = x ;
9) array [ l ]+2 = x ;
10) x = ( x +1) [ array ];
(解答は 68 ページ)
一次元配列を扱 5 プログラム
それでは,配列を使った実際のプログラムを紹介しま
しよう。ここでは典型的な配列の用途に従って2つのプ
ログラムを作っています。すなわち,統計処理(もどき)
のプログラムと配列を表として使うプログラムです。
•統計処理もどき
与えられた配列に何人かの試験の得点が格納されてい
る場合に,得点の平均と標準偏差を計算し,さらに各自
の得点の偏差値を計算するプログラムがリスト1です。
得点はあらかじめ mark という int 型配列の中に初期値と
して格納されています。
このとき,平均や標準偏差は次の式で計算できます (n
は要素数)。
平均 = (mark [0] + mark [1] + . +mark [ n ])/
n
分散 ={(mark [0] —平均) 2 +(mark [1]—平均) 2
+.
.+ (mark [ n ] —平均 ) 2 } /n
標準偏差 =
また,受験生にとって頭の痛い偏差値は,
(mark [ i ] 一平均)*10/標準偏差+ 50
という式で計算することが多いようです(この式は添字
i の得点の偏差値)。これだけの式がわかれば,あとは繰
り返し制御構造である for ループを使って簡単に計算で
きますね。
ところで,リスト1のプログラムは int 型と double 型の
変数をそのまま演算しています。このような場合, C コ
ンパイラが(もっとも自然な結果が出るように)適当に
変数の型を変換して計算してくれるのです 6 、このこと
るめ
い求
てをる
れ差す
さ偏 II
納準計
格槻を
にと11
k 均差
ar 平偏
In のの
列点自
配得各
1234567890123456789012345678901234567890123456789
1111111111222222222233333333334444444444
7 9 8 6 9 3 3 5 7 2 5 7 7 4 6 2 4
452 5 465 5 554455248
7
商资值泡 flfiffifls 齒 flflllgfl 9< fi ( l 8(£ ffi ( i 6
差差差差差差差差差差差差差差差差. 1
_偏;3塥娟偏偏偏偏偏偏偏偏 (i 偏偏24
. ^
偏
準
〇 揀
了
点点点点点点点点点点点点点点点点00
得得 fl » 得得得得得得得得得得得得得 50
号号号号导 nlr ^ 号^号号号号号号号导均
rVa {J s 昏 su § sn & ¢1
ようこそここへ c 言語 67
という関係になっています。したがって sin を求めるべき
値が与えられると,それを100倍した値(端数は切り捨て)
を添字と見なして配列 sinTab を参照すれば値が得られ
るという仕組みです。このやり方は入力が,
O.xx
というように小数点以下2位までで表せる場合はいいの
ですが,もっと半端な場合も計算できなければおもしろ
くありません。そこで入力を100倍した値が i (端数を切
り捨てている)であるとき,
sinTab [ i ] から sinTab [i + 1] までの値が
入力に対して直線的に変化している
と仮定して入力の端数で直線近似を行うことにします。
リスト2では sinTab [ i ] と sinTab [i + 1] の間を10000
分割して近似値を求めています。リスト2では実際の sin
リスト2
1:ハ
2
3
4
配列を表として使う
三角間数 < sin > を近似計算する
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* 三角関数 sin (答え
# include < math . h >
/* この配列には sin の
double sinTab[J = {
0 . 000000000000000 ,
0.0299955002024 96,
0.0599640064794 45,
0.0898785491980 11,
0.119712207288920,
0. 1494381324736 00,
0. 1790295734258 20,
0.2084598998461 00,
0.2377026264271 30,
0.2667314366888 30,
0.295520206661340,
0.324043028394870,
0.3522742332750 90,
0.380188415123160,
0.4077604530595 70,
0.4349655341112 30,
0.461779175541480,
0.4881772468829 10,
0.5141359916531 10,
0.5396320487339 70,
0.5646424733950 40,
0.5891447579422 70,
0.6131168519734 30,
0.6365371822219 70,
0.6593846719714 70,
0.6816387600233 30,
0.703279419200410
合わせ用)を使うため
値を0からパの範囲
0.009999833334166,
0.039989334186634,
0.069942847337533,
0.099833416646828,
0.129634142619690,
0.159318206614250,
0.188858894976500,
0.218229623080870,
0.247403959254520,
0.276355648564110,
0.305058636443440,
0.333487092140810,
0.361615431964960,
0.389418342308650,
0.416870802429210,
0.443948106965520,
0.470625888171160,
0.496880137843740,
0.522687228930660,
0.548023936791870,
0.572867460100480,
0.597195441362390,
0.620985987036560,
0.644217687237690,
0.666869635003700,
0.688921445110550,
のオマジナイ*/
で 0.01 きざみに格納*/
0.019998666693333,
0.049979169270678,
0.079914693969173,
0. 109778300837170,
0. 139543114644240,
0. 169182349067000,
0. 198669330795060,
0.227977523535190,
0.257080551892160,
0.285952225104840,
0.314566560616120,
0.342897807455450,
0.370920469412980,
0.398609327984420,
0.425939465066000,
0.452886285379070,
0.479425538604200,
0.505533341204850,
0.531186197920880,
0.556361022912780,
0.581035160537310,
0.605186405736040,
0.628793024018470,
0.651833771021540,
0.674287911628150,
0.696135238627360,
int n=sizeof ( sinTab ) / sizeof (double ) ; /本 SI 列の!? 索数本/
double x , y ;
int i . j ;
main()
{
printfr 浮動小数点(約 0.785 以下 )?"
scanf (" Xlf ",& x );
i=x*100 ; /* 100 倍すれば添字になる */
j=x* 1000000 -i*10000; /* 小数点第 3 位以下を求める */
y=( sinTab[i+l] 本 j + sinTabti 】 ♦ < 10000-j) )/10000;
/* 小数点第 3 位以下に值があるときは直練近似*/
if(i>=(n-l)){
printfr%f は範囲外です ¥n", x) ;
else {
printf) :% f 彡 ミ % f {%f)¥n",
x, sinTab[i], y, sinTab[i + 1J, sin(x ));
U スト 2 の実行結果
浮動小数点《約0.785以下>?
sin (0.555555 ) :0.522687 ^ 0.527408 ^ 0.531186 {0.527414}
浮動小数点(約0.785以下}?
sin (0.234567) :0.227977 ^ 0.232418 ^ 0.237702 (0.232422)
関数の値と比^^するようになっていますが,結果は有効
数字4桁程度の精度で正しく計算できているようです。
思ったほどの精度は出ませんでしたが,まあ愛敬ですね。
6, 異なる型どうしの演算ではちゃんと型変換を明示したほうがい
いという意見もある。型変換は変数の前に変換するデータ型の名前
を () で囲んで示す。たとえば var が int 型の変数であるとき,
( double)var
は double 型への型変換になる。これを型のキャストという。
氺
今回は C 言語のデータ構造の中でもっ t もポピュラー
な一次元配列の解説を しま した。配列は添字でデータを
扱えるのが最大の特徴です。前回説明した繰り返し制御
構造はまさにこの配列要素を扱うのに最適な制御構造で
す。制御構造と配列を征服すれば,ちょっとしたプログ
ラムならば書けるようになるはずです。これらは C 言語
のプログラミングの基本ですから,各自大いに復習,自
習に励んでくださいね。来月は一次元以上の配列につい
て説明したいと思います。それではまたぉ会いしましょ
ラ 0
氺氺ホ
♦基礎力を高めよラの解答"" III " 川"""|"""""酬_|__川川酬
設問 1 DO 2 )x 3)0 4)0 5)0
6)0 7)0 8)0 9)0 10)0
解説
1 ) , 3), 5) :初期化リストの最後のカンマはあってもなくてもよい。
UNIX 上のコンパイラでは最後に余計なカンマを付けるとエラーに
なることもある。
4), 5), 7) :初期化リストの要索数が配列の要素数に満たないとき
は,残りの要素は0で初期化される。……ことになっているが , GCC
や XC では残りの要素の値はなぜか不定になっている。
6), 7) :配列の要素の個数の宣言や初期化リスト内の初期値は結果
が定数になる式で害いてよい。
2) :初期化リスト内の要素数は宣言した配列の要素数より多くては
いけない。 XC ではエラーになるが, GCC では警告に留まり配列の要素
数を優先する。
8) :初期化がない配列宣言と同じこと。
9) :文法的には正しいが意味的にはおかしい。初期化を行うという
ことは(この場合は実際には初期化を行わないが),そこに実体があ
るということである。しかし,配列宣言自体は不完全型であり大き
さが不定になっている。これは実体のない配列の宣言したことにな
る。このような配列の要素を参照しても意味がない。 10) との違いに
注意すること。
10) :これは d という変数が int 型の配列であるということを示して
いるだけで, d という配列を宣言したわけではない。本当の配列 d
の宣言は(おそらく)別ファイルの中で行われている。
木 ホ氺
設問2 1)0 2)0 3)0 4)0 5 )X
6 )x 7)0 8)0 9 )x |〇)〇
解脱
4), 8), 10) :配列要素を参照する演算子は,
x [ Y ]
の形でのみ使用できる。通常は x が配列名, y が添字であるが , x
と y が逆でもかまわない。したがって, 4), 8), 10) のような記述も
できる。ただし,このような記法をする人はよほどのへそまがりで
ある。
3) : [] は単なる演算子であるから添字として与える値は負の数で
もよい。負の添字は配列要素の参照では意味がない(許される添字
の範囲外)が,ポインタに対して [] を用いるときにはそれなりの
意味がある。ポインタと配列の関係はこの連載でもそのうちじっく
りとやりたいと思うが,今はこの程度の理解でよい。
9) :代入文の左辺に式が窨けないのは変数の場合と同じ。
68 Oh!X 1991.2.
111111111 訓 11111111111111111 X 68000 マシン i 吾プロク'ラミ:ング 1111111111111111111111111111
Chapter.
ソーティングプログラム(前編)
プログラミングを学ぶ者が一度は心ひかれるソートの技法。アルゴ
U ズムの違いが大きな効果となつて表れるだけに,多<の先人だち
がさまざまな手法を研究してきましだ。アルゴ IJ ズムを考える楽し
さと実際にコーデインクする際の工夫を味わって<ださい。
今回はだいぶ前に予告しておいた“ソート”を取
り上げる。予想外に原稿が膨れ上がってしまったの
で(失敗),ブチンと2つに割って,前後編の2回
に分けてお届けする(ま,のんびりやるさ)。
ソート ( sort )。 名詞形ならソーテ イング (sorti
ng ) 0 並べかえ,整列,分類,順序づけ,などと訳
される。説明するまでもなく,データ列を決められ
た順序に並べかえる操作のことをいう。ソートは,
サーチ ( search : 探索,検索)と並んでアルゴリ
ズムの良否が露骨に実行時間に反映する操作だ。だ
からなのだろう,とっくの昔に諸先生によって研究
し尽くされて,アルゴリズムが確立している分野で
もある。今回は,そうやって先達が考え出したアル
ゴリズムを棚からボタモチとばかりに拝借して,68
000のアセンブリ言語でコーデイングしてみようと
いうわけだ。
参考文献としては, Wirth の名著 『Algorithms
+Data Structures = Programs 』, あるいは,そ
の改訂版である 『 Algorithms&Data Sturucturesj
を勧めておく (邦題はそれぞれ『アルゴリズム+デ
ータ構造=プログラム』,『アルゴリズムとデータ構
造』)。より深く知りたい人には Knuth の 『TheAr
• サブルーチン名は常に sort 。
•動作試験用プログラム
今回の各リストでは,冒頭に必ず注釈として,80
00個のランダムデータからなる配列をソートしたと
きの実測時間 2〉 を1/100秒単位で入れてある。ソート
時間の計測には,リスト1に示すプログラムを使っ
た。脇役にすぎないプログラムだが,いちおう簡単
に触れておく。
リスト1は, IOCS コール ONTIME を使って1/1
00秒単位でソート時間を計り,表示する 。 ONTIME
は X 68000 を起動してからの時間を1/100秒単位で返
すから, ソートルー チンを コールす る直前と直後に
ONTIME を呼べば,その戻り値の差でソートにか
かった時間が得られる。このような計時のときには,
計時開始時と終了時とでそれぞれ単位時間(いまの
場合は1/100秒)の誤差が発生する可能性がある。
リスト1では,28〜32行で“1/100秒単位の時間の
変わり目”を待っことで,計時開始時の誤差は(ほと
んど)消している力す,終了時にはなにもしていない。
リスト1では,切り捨てを行う方向に,まだ最大1/
100秒の誤差が残ってい る ことを覚えて おいて もら
いたい 3 )〇
I )昇順とは小さい順のこと。
逆は降順。
2) テストは, 0 PMDRV . X は
OFF にし,そのほか割り込み
をかけまくる常駐プログラム
• デバイスドライバの類もは
ずした状態で行った。
3) もっとも,誤差は計測の
常ではある。なお,本当は30
〜33行のような細工をせずに,
数回実行して平均をとったほ
うが,より正確な時間が得ら
れるはずだが,今回はその手
間を惜しんだ。
t of Computer Programming 』 のうちの 1 冊(邦
題は何ていったかな? 失念した)がある。
| m
今回は,各ソートアルゴリズムごとに,
• アルゴリズムの概要
• プログラム例
•改良案(アルゴリズム上の改良だったり,マイナ
一な最適化だったり,いろいろ)
を,たんたんと並べるスタイルで進める。プログラ
ム例はソートを行うサブルーチン本体のみとし,各
サブルーチンは以下の仕様に統一した。
•扱うのは32ビット符号つき数値の配列。
• ソートは昇)傾 1 )に行う。
• 引数は“配列の末尾のアドレス+1”と“配列の
先頭アドレス”をこの順でスタックに積んで渡す。
1/100秒単位で得た時間を文字列に変換する処理
には,手抜きして, FLOATn . X の フアンクシヨン
コール USING を使っている(という わ. けで,テス
トプログラ ムの 実行時には FLOATn . X が組み込ま
れていなければならない)。 FLOATn . X の ファン
クシヨンコールに ついては,きっと,そのうち“ 算
術計算 (!?)” かなんかのテーマのときに取り上げる
機会があると思うから,いまは無視してしまう。ど
うしても気になる人は XCVer .1.0 ( Ver .2.0 は不
可)の FEFUNC . H というファイル中の注釈か,数
値 演算プロセッサ ボードのマニュアルか,市販の解
析本 『 X 68000 環境 ハンドブック』 を参照されたい。
籲動作試験の方法
試験の対象となるソートルーチンとリスト1とは,
リンク時に結合する。リンクは(ソートルーチンの
オブジェクトファイル名が S 0 RT 1.0 だとすると),
A>LK SORTTEST SORT 1
x 6 8000 マシン語プログラミング 69
ソートルーチンの動作餘繫用フ’ログラム
.include
.include
.include
doscall.mac
iocscall.mac
const.h
.xref
本
MAXDATA equ
本
FPACK macro
.dc. w
endm
.text
.even
sort
8000
callno
callno
$fel8
tloop :
lea. J
bsr
IOCS
move.1
IOCS
cmp.1
beq
move.1
mysp,sp
readdata
_ONTIME
d0,d6
ONTIME
d0,d6
tloop
d0,d6
lea.1 sdata(pc),a0
pea.
pea.
bsr
0(a0,d7.1)
(a0)
sort
addq.1 #8,sp
IOCS _ONTIME
sub.1
bpl
add.1
d6,d0
tskip
#24 本 60 本 60 本 100 , d0
本デ . 夕の Jft 大個数
*FLOATn.X の
* ファンクション呼び出し用
* マクロ
本整数-文字列変換コール
本(桁数指定つき)
»データを統み込む
*d7= 配列の大きさ
*郴獼始
*d6.1 = 仮の開始時刻
* 1/1 仙秒単.位の
* 時間の変わり目を
* 検出する
*d6 = 開始時刻
* & 0 =ソートする配列
* 配列末尾 +1 のァドレス
本 fid 列先^のアドレス
* ソートする
%
* 時刻を得る
本 d0=V — 卜に要した時間
tskip :
lea.l temp(pc) , a0
moveq.1 #7,a 1
FPACK IUSING
bsr
pea.1
DOS
pea.1
DOS
bsr
DOS
conv
tempi pc}
.PRINT
secmes(pc)
_PRINT
writedata
EXTT
* 負の場合は 24 時間 分補正する
* 、ノー トに要した 時間を
* 10進7桁揣めて
»文字列に 変換する
*1/ 100 秒取位から秒単位へ
* ソートに要した
* 時間を表示する
いノー ト結果を書き出す
データをフアイルから読み込む
readdata :
move. w
pea. 1
DOS
addq.1
move.w
bmi
move.1
pea.1
move.w
DOS
move.1
bmi
DOS
#ROPEN,-(sp)
1(a2 )
_OPEN
#6,sp
d0,dl
error
<MAXDATA*4,
sdata(pc)
d1,-(sp)
_READ
d0,d7
error
CLOSE
• ( sp)
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
lea.l
10(sp),sp
andi.l #$f f f f_f f fc ,d7 *d7 = ソートする砂 IJ の株 M イト数
* ( ロングワード単位)
beq error
rt8
* ソート結果をファイルに書き出す
本
wntedata :
move. w # ARCHIVE ,- (sp)
pea. 1 dfile(pc)
DOS _CREATE
addq.1 #6,sp
move.w d0,dl
bmi error
move.1 d7,-(sp)
pea.1 sdata(pc)
move.w dlsp)
DOS _WRITE
cmp.1 d7,d0
bne error
DOS
lea . 】
rts
_CLOSE
10( sp),sp
エラー 終了
pea.1 errmes(pc)
DOS _PRINT
move.1 #1,-(sp)
DOS EXIT2
1 バ 00 秒単位 h ►秒単位変換
skipl :
skip2 :
dfile:
errmes :
secmes :
temp :
sdata :
mystack :
mysp:
lea.l
lea.l
moveq.1
moveq.1
clr. b
move.b
move.b
cmp. b
bne
move.b
move.b
move.b
move.b
cmp. b
bne
move.b
rts
data
even
dc.b
dc.b
dc.b
bss
even
da. b
ds.l
stack
even
temp+7{pc),al
temp+8(pc) , a2
#$20, dl
#•0 , , d2
(a2)
-(al) f -(a2)
-(al),d0
dl , d0
skipl
d2 , d0
d0,-(a2)
#' . • , - (bl2)
-(a2),d0
dl,d0
skip2
d2,(a2)
1 sort.out ', 0
上ラーが発生しました ’ , CR,LF,0
r sec. ' ,CR,LF,0
ds.l
end
10
MAXDATA
160000 +256
ent
木数侦変換 用
* ソートデータ 格^域
* スタック 領域
4) リスト丨では162行の . en
d 疑似命令で実行開始アドレ
スを指定しているから,リン
ク順序を変えても大丈夫。
とやってもいいが,
A>LK SORTTEST SORT1/oSORTl.X
あるいは,
A > LK SORT1 SORTTEST 4 >
のようにして,ソートルーチンごとに実行ファイル
にも別のファイル名をつけたほうがなにかと楽だ。
テスト用のデータはファイルとして(たとえば,
SORT.INP というファイル名で)用意し,
A>SORTl SORT.INP
のように実行時の引数として指定するようになって
いる。データファイルはリスト 2 のような X-BAS
1C プログラムで作成するのが手軽だろう。 70-100
行あたりの注釈で殺してある各行を適当に復活する
ことで,作為的なデータを作ることもできる。
ソート 結果は無条件に SORT.OUT というファイ
ル名で出力される。あらかじめ動作が確認され てい
る ソート プログラムを 使って ソートしたファイルを
(たとえば, ORDERED.DAT というファイル名で)
U スト1 SORTTEST . S
1234567890123456789012345678901234567890123456 7 8901234567890123456789012345678901
111111111122222222223 3 33333333444444-444455 5 555555566666666 6 677777 7 77 7 788
7 Q Oh ! X 1991.2.
用意しておき, FC . X を使って,
A>FC SORT.OUT ORDERED.DAT /B
というようにファイル内容を比較することで,ソー
卜が正し〈行えたかどう力、が確認できる(バイナリ
ファイルの比較を指定する / B スイツチは必ずつけ
ること)。
では,ここからが本題。
|
#アルゴリズム
ソートのもっとも原始的なアルゴリズムに,単純
交換法がある。配列中の隣り合った要素を比べ,位
置関係が狂っていたら交換するという操作を繰り返
すことでソートしていく方法だ。
1) まず,配列末尾の2要素に注目し,大小関係が
狂っていたらその位置を交換する。続いて,注目す
る位置を1つ手前にずらし,また,比較して,必要
なら位置を交換する。以下,同様に配列先頭に達す
るまで比較•交換を繰り返す。図1に示すように,
小さな値は順繰りに前に送られていく形になる。こ
こまでが1回分の“ パス”。
2) この時点で先頭には配列中の最小値がある。先
頭要素は確定したから,もう忘れてしまってよい。
そこで,配列の2番目の要素以降に対して 1) の操作
を繰り返す。と,2番目に小さい値が配列2番目に
移動する。
3) 以下,同様に処理範囲を狭めつつ,同様の操作
を繰り返す。残り要素が1個になった!:きにはソー
卜が完了している。
以上のアルゴリズムの動きを追うと図2のように
なる。小さな値がちようど泡のように配列先頭のほ
うへ浮いていく様子から,このアルゴリズムはバブ
ルソート ( bubblesort ) という名でも知られている
(というより,こっちのほうがとおりがいい)。
•プログラム例
リスト3がバブルソートルーチンの一例だ0わけ
あって,パスの方向を上の説明とは逆にしてある。
つまり,“配列の後ろのほうから比較•交換を繰り
返して,先頭に最小値を移動させる”代わりに,配
列の前のほうから比較•交換を繰り返して,末尾に
最大値を移動している。
プログラムは単純な2重ループ構造をしている。
24〜33行のループがパス1回分の処理で,このルー
プにより,最大値が処理範囲の末尾に移動する。そ
れを23〜37行のループで囲み,残り要素数が1個に
なるまで繰り返している。ここでは,サブルーチン
に渡された配列の要素数が最初から1個しかない場
合に備え,21行の bra によりループ先頭ではなくル
ープの終了判定部分に飛び込んでいる点に注意した
い。また,20行で al (= 配列の末尾+1を指して
いる)を要素1個分減らしているのは,32行や37行
のアドレス比較を楽にするための細工だ。
内側のループは,隣り合った要素の比較 (24 〜26
行),交換 (29 〜30行)の2つの処理からなる。比
較時には次のループに備えて,ポストインクリメン
卜•アドレスレジスタ間接形式を使って,同時にポ
インタを進めている。そのため,29〜30行の交換処
理では,このずれの分をデイスプレースメントで補
正している。
ところで,ポインタを使ったメモリ操作時には,
ポインタを増やすか減らすかによって,ポストイン
クリメント•アドレスレジスタ間接形式とプリデク
リメント•アドレスレジスタ間接形式を使い分ける
わけだが,68000では前者のほうが若干速い。パス
の方向を逆にしたのは,うま〈ポストインクリメン
卜 •アドレス レジスタ間接形式が利用できるように
したかったからにほかならない。
•改良案
バブルソートはその覚えやすい名前以上に,遅い
アルゴリズムとして有名だ。少々改良したところで
ほかのソートアルゴリズムにはまるでかなわない。
しかし,あっさり見捨てるのはかわいそうなので,
できる限りの高速化をしてやろう。
リスト3では,処理範囲を狭めていき,残り要素
数が1以下になった時点でソート完了と判断した。
パス回数は常に配列の全要素数一1回だ。が,図2
の例でもわかるように,実際にはその前にソートカ 5 '
U スト2 GENDAT . BAS
10 int fp,i,dat(7999)
20 str s
30 s = time$
40 srand( afcoi(rxght$(8,2)+mid$(s,4 f 2)+left$(s,2)) mod 32768 )
50 for i=0 to 7999
60 dat ( i) = rand( ) /* ランダム本 /
70 /* dat( i ) = randt )/100 / 本ランダム(重技率 1 〇〇倍 )*/
80 /% dat ( i ) = rand( )/1000 / * ランダム(重 ) 〇〇〇倍)本 /
90 /* dat{ i) = i /* ソートずみ本/
100 /本 dat(i) = 7999-i /* 綱ソートずみ </
110 next
120 fp = fopen( "sort.inp", "o")
130 fwrite( dat, 8000, fp )
140 fclose{ fp )
図 1 単純交換法における
51 45 76 23 38 16 83 60
51 45 76 23 38 16 60 83
51 45 76 23 38 16 60 83
51 45 76 23 16 38 60 83
51 45 76 16 23 38 60 83
51 45 16 76 23 38 60 83
51 16 45 76 23 38 60 83
16 51 45 76 23 38 60 83
図ク 単純交喚ミ 土
初期状態 51 45 76 23 38 16 83 60 (バブルソート)
16151 45 76 23 38 60 83
16 23151 45 76 38 60 83
16 23 38151 45 76 60 83
16 23 38 45151 60 76 83
16 23 38 45 51 160 76 83
16 23 38 45 51 60176 83
ソート完了 16 23 38 45 51 60 76 183
X 68000 マシン語プログラミング 71
完了する場合もある。ソートが完了したかどうかを
早めに検出できれば,無駄な比較をしなくてもすみ,
実行速度の向上が望めそうに思える。具体的には,
交換が行われたかどうかを表すフラグを設け,ルー
プ先頭でこのフラグを偽に初期化しておき,以後,
交換が行われたらフラグを真にする。ループの最後
でフラグが偽のままであれば,1回の パスの あいだ
に交換が行われなかったことがわかり,ソートずみ
と判断できる。
このとき,交換が行われたかどうかだけではなく,
最後に交換が行われた位置も同時に記憶しておくと,
さらに処理ステツプの節約が図れる可能性がある。
たとえば,
30 2010 40 50 601
のようなデータ列に バブル ソートを適用する場合を
考えよう(“丨”で処理範囲の上限を表す)。最初の
パスで,前から順に比較•交換していくと,まず30
と20,さらに30と10の位置が交換されて,
2010 30 40 50 601
t T
になる(矢印は最後に交換が行われた位置を表して
いる)。ふつうなら,ここで処理範囲の上限を要素
1個分狭めるわけだが,明らかに,“最後に交換が
行われた位置より右”はすでにソートずみであり,
処理範囲から除外してもよい。そこで,上限を一気
に“最後に交換した2要素のあいだ”に動かす。
2010130 40 50 60
t T
そうすれば,2度目のパスでは残りの2要素だけを
相手にすればよく,素直に,
2010 30 40 50160
と上限を移動した場合よりも上匕較回数を減らすこと
ができる。
リスト4に改良版を示す。いや,残念ながら改良
ではなく,改悪になってしまった。なるたけの最適
化を施したにも関わらず,平均的な性能はリスト3
の版よりも多少落ちて いる。 アルゴリズムを改良し
たことにより節約される比較時間よりも,新たにル
ープ中に追加された命令の総実行時間のほうが長か
ったのだ。比較にかかる時間がもっと長い場合(た
とえば,対象が整数データではなく文字列のとき)
には,比較を1回省略するごとに節約できる時間も
大きくなるから,改良の効果が出てくるはずなのだ
力 ? 。
せっか〈だから,リスト4に施したマシン語流の
最適化についても簡単に触れておく 0まず, a 0 レ
ジスタを交換が行われたかどうかを表すフラグと,
最後の交換位置を指すポインタの両方に兼用してい
リスト 3 SORT1.S
1
本
碑つき 32 ビットデータの配列を耕貞にゾートする
23
100 pi :
movea. 1
aO, a2
本 a2= 注目している位 {R
2
本
( ハブル、ノートあるいは単挑交換法)
24
1 oop2 :
move. 1
(ai!) + ,d0
♦隣り合う
3
本
H0O0 要素の、ノー トに
2111 .33 秒
25
move. 1
(a2),dl
* 2 つの要素を
4
本
26
cmp.1
dl,d0
* 比較して
5
.xdef
sort
27
ble
next2
* 乱れを湖へる
6
章
28
7
.offset
8
29
move.1
dl,-4(a2)
か乱れていたら
8
ATOP :
.ds.]
1
*&array[0 J ( 配列の先頭アドレス)
30
move.1
dO,(a2)
»位置を交換する
9
ABOT :
.ds. i
1
本 &array 【 N 丨(配列の谢冬アドレス +1>
31
10
拿
32
next2 :
cmpa.1
a 1,a2
♦上限に遂するまで
11
.text
33
bcs
loop2
* 繰り返す
12
.even
34
13
本
35
subq.1
#4 ,al
を狭める
14
sort:
36
nextl :
cmpa.I
a 1,aO
が配列先頭に遠するまて
15
1 ink
a6,#()
37
bcs
i oopl
* 繰り返す
16
movem.1
d0-dl/a»-a2 , - (sp)
38
17
39
done :
movem.1
(sp > + ,dO-d1/aO-
-a 2
18
movem.1
ATOP(a6) ,aO-al *aO = g 己列先頭アドレス
40
unlk
a6
19
本 a 1= 配列末尾 +1 のアドレス
41
rts
20
subq.1
#4 ,al
♦31 =揪搜索のアドレス
42
21
bra
next 1
43
.end
22
U スト 4 S0RT2.S
1
本
仔号つき 32 ビットテータの配列を昇 Ifl: ニソートする
2
t
UC/ ルソ -
- 卜:改良しようとして改悪した版)
3
A
本
8004) 要梁のソートに
237 .74 秒
5
.xdef
sort
6
本
7
.offset
8
8
ATOP :
.ds. 1
1
*&array|0J ( 配列の先頭アドレス)
9
ABOT :
.ds. L
1
♦ fcarrayINJ ( 配列の最終アドレス +1>
10
11
本
.text
12
.even
13
♦
14
sort :
15
]ink
a6,#0
16
movem.L
d0-d2/a0-a3,-(sp)
17
18
movem.1
ATOP(a6) ,aO-al 本 a0 = 歯己歹アドレス
19
20
subq.1
#4 ,al
*al= 配^末尾 +1 のアドレス
本 a1=*^# 素のアドレス
21
22
cmpa •丄
al,aO
* 要素数が 1 以下なら
23
bcc
done
* ソート済み
24
25
moveq.1
#0,d2
本 d2 = 0
26
addq.L
#4, a 1
本す ぐ 下の行のための逆補 £
27
100 pi :
lea. 1
-4(a 1),a3
* & 3 =舰の
28
movea.1
a0, a2
注目している位®
29
movea.1
d2,al
本 a 1=0
30
31
loop2 :
move.1
(a2)+,d0
* 隣 0 合う
32
move.1
(a2),dl
* 2 つの要素を
33
cmp.1
dl,d»
* 比較して
34
ble
next2
♦ JW 參の乱れをる
35
36
move.1
dl , - 4(a2)
*鹏が乱れていたら
37
move.1
d0,(a2)
* 位置を交換する
38
movea.1
a2, al
本 a 1= 次のループの上限 +4
39
40
next2 :
cmpa.1
bcs
a3,a2
*±1®に逨するまで
41
loop2
* 繰り返す
42
43
next 1:
cmpa.1
d2,al
* 交換が行われなくなるまで
44
bne
100 pi
* 繰り返す
45
46
done :
movem.1
(sp)+,d0-d2/a0-
-a3
47
unlk
a6
48
rts
49
50
.end
72 Oh ! X 1991.2.
る。 aO が0のときは“交換がまだ行われていない”
ことを表す。交換が行われたら,その位置を aO に
入れ,そのことによって aO は非0となり,“交換が
行われたこと”を表すようになる。この周辺では,
d 2 レジスタにあらかじめ0を入れておき,
suba.l
al , al
の代わりに,
movea.l
d 2 ,al
を,
cmpa.l
#0 ,al
の代わりに,
cmpa.l
d 2 ,al
を使うといった,小さな細工もしてある。
また,38行に注目してもらいたい。よく見てもら
うと, al に格納されるアドレスは要素1個のバイ
卜数だけ(ここでは 4) 予定よりずれている。この
分の補正は,外側の ループの 先頭27行の,
lea.l -4( al ), a 3
で行っている。それにともない,ループに入る直前
に,
addq.l # 4, al
を入れて逆補正していたりもする。わざわざこんな
ことをしているのは次の理由による。
アルゴリズムどおりの動作をさせるためには,27
行か38行のどちらかを,
lea.l -4( aX),aX
に,逆側を,
movea.l aX , aX
にする必要がある。ここで,前者は後者よりも多少
遅い。となれば,“頻繁に実行されるほう”により
速い命令を使うべきだ。27行と38行の実行回数を考
えると,27行は パス 1回ごとに1度実行され,38行
は パスの 中で交換が発生するたびに1度実行される。
多くの場合,
パス回数く<交換回数
だから,交換時の処理時間を短縮するほうが速度的
に有利,となる。つじつま合わせに追加された26行
は, ループの 外側でただ1回実行されるだけだから,
大勢には影響しない。
#シェーカーソート
改悪になってしまったのが悔しいので,少しムキ
になって,さらにアルゴリズムの改良に取り組む。
6010 20 30 40 50
というデータ列をリスト4の改悪版バブルソートル
ーチンでソートすることを考えよう0最初のパスで
5回の交換が起こり,最大値60は配列末尾に移動し
て,1パスでソートが完了する。正確には,ソート
が完了したかどうか知るためにはもう一度走査する
必要があるが,それでも2パスだ。では,
20 30 40 50 6010
というデータ列ではどうだろう。パス1回ごとに交
換がただ1度行われ,末尾に置かれた最小値の10は
順々に前に送られていく。都合5パスだ。交換回数
は上の例と変わらないが,比較回数はずっと多くな
ってしまう。
では,パス方向を逆にして(配列の後ろのほうか
ら比較•交換を繰り返して,先頭に最小値を移動さ
せる),同じデータ列をソートしてみる。今度は状
況は逆転し,
20 30 40 50 6010
は2パスでソートできるが,
6010 20 30 40 50
をソートするのに5回のパスが必要になる。バブル
ソートにはアルゴリズム上の偏りがあり,パスの方
向によって,得意なデータと不得手なデータがはっ
きり分かれるわけだ。
リスト5 S 0 RT 3 .S
l
本
符号つき 32 ビットデータの配列を昇順にツートする
2
本
( シエーカ -
- ソート)
3
4
本
8000 要素のソートに 179.26^'
5
.xdef
sort.
6
t
7
.offset
8
8
ATOP :
t d s • J.
1 *&.array[ 0 J ( 配列の先姐アドレス〉
9
ABOT :
.ds. 1
1 本 &array 【 N] ( 配列纖冬アドレス + 1 )
10
拿
11
.text
\2
.even
13
本
M
sort :
15
link
a 6 9 #0
16
movem .1
d0-d2/a0-a3•-(sp)
17
18
movem .1
ATOP(a 6 ),aO-a L
化 0 = 配列_アドレス
19
*& 1 = 配列末尾 + 1 のアドレス
20
subq .1
#4 ,al
♦al = 最終要衆のアドレス
21
22
cmpa.l
al,aO
♦ 要素数が 1 以下なら
23
bcc
done
* 、ノー ト済み
24
25
tnoveq .1
# 0 ,d 2
*d 2 = 0
26
27
loopl :
movea.l
a0 , a3
本 &3 =麵の
28
movea .1
a 1 ,a 2
= 注目している位 *
29
movea.l
d 2 f a 0
本 a 0 = 0
30
31
loop2 :
move.1
(a2),d0
合う
32
move.1
-(a2),dl
* 2 つの要索を
33
cmp.1
dl,d0
* 比較して
34
bge
next2
* 順序の乱れを观^る
35
36
move . 1
dl, 4(a 2 )
♦順序が乱れていたら
37
move . 1
d 0 ,(a 2 )
* 位!!を交換する
38
39
movea . 1
a 2 ,a 0
本 aO = 次の 1 レ _ フ'のド限
* ( 本当はもう 1 要素分狭められる)
4 0
next 2 :
cmpa.l
a2,a3
* 下限に违するまて
* 繰り返す
41
42
bcs
10 op 2
43
cmpa.l
d 2 ,a 0
* 交換が行われなくなるまで
44
45
beq
done
* 繰り返す
46
movea .1
al,a3
47
movea.l
aO, a 2
= 目している位彼
48
49
movea.l
d 2 ,al
*a 1=0
50
loop3 :
move .1
(a 2 ) + ,d()
* 除り合う
51
move .1
(a 2 ),dl
* 2 つの要素を
52
cmp .1
dl,d 0
* 比較して
53
54
ble
next3
* 傾序の乱れを湖べる
55
move .1
dl , - 4(a2)
乱れていたら
56
move .1
dl), (a 2 )
* 位*を交校する
57
58
movea .1
a 2 ,al
*al = 次のルーフの上限
* ( 本当はもう 1 要素分狭められる)
59
60
61
next3 :
cmpn.I
bcs
a3,a^
1oop!J
* 上限に遠するまて
* 繰り返す
62
next 1 :
cmpa.l
d 2 ,al
♦交換か行われなくなるまで
63
64
bne
1oopl
* 错り返す
65
66
67
68
69
done :
movem .1
uni k
rts
.end
( sp ) + ,d 0 -
a 6
d2/n()-a3
X68000 マシン語プログラミング 73
■J スト 6 SORT4.S
符号つき 32 ビ • ゾトデータの fid 列を猝晚こ•ノートする
( 中糊択法)
8000 要素の,ノートに U1 •⑼杪
ATOP :
ABOT :
.xdef sort
.offset H
.ds.1 1
.ds.1 1
.text
.even
*&array l») (gii 列の先頭アドレス)
*&array[NJ ( 配列の最終アドレス +1 )
link a6 ,#0
movem. 1 dO/aO-a3 , - (sp)
movem.1 ATOP(a6),aO-
subq.1 #4,a 1
*a0 = 配列先頗アドレス
本 al= 配列末 jg+1 のアドレス
*al= 嵌^要素のアドレス
bra
loop!
swap :
move.1
move•1
(aO),(a3)
dO , (aO) +
100 pi :
cmpa.1
al,aO
bcc
done
movea.i
l al,a2
select :
move.1
movea.J
(a2),d0
L a2 , a3
loop2 :
cmpa•1
a2, aO
bcc
swap
cmp •1
-U2) ,d0
ble
loop2
bra
select
♦みつけた嵌小®と
* 先要索を交換する
*Sd 列の最後に违した?
* そうならソート完了
臟位 B
*d0 = 仮の最小油 •
*a3 = d0;Hg 納されていた位面
♦配列の先頭に违した?
* d0 に入っているのか最小滷
* 仮の A 小値より小さい值を
♦ 探し続ける
* みつかった6仮の<4小侦にする
done : movem. 1 (sp) +, d0/a0-a3
un Lk a6
rts
.end
そこで, 1 回のパスごとにパス方向を変えて,偏
りをならせば,平均的な性能も向上するのではない
かという発想が生まれてくる。このバブルソートの
変形はシェーカーソート (shaker sort ) というこ
れまた冗談のような名前で知られている。リスト4
を ベースに 作り直したプログラムをリスト5に示そ
う。今度はちゃんと改良になった。
プログラムは,パスの方向を変えた2つのループ
を直列に並べてあるというだけの代物で,見るべき
ところはなにもない。すでにバブルソートに対して
は十分な礼儀をつくしたことでもあるし,そろそろ
飽きてもきたので,下限や上限を更新する処理は若
干手抜きスタイルになっていたりもする0リスト4
同様,38行や57行でアドレスレジスタに入れている
アドレスは望む値より4バイトずれているが,この
補正をどこでもやっていない。これにより,常に下
限や上限が要素1個分ずれており,パス1回ごとに
余計な比較が1度ずつ行われる。気になる人は改良
してもらいたい。
籲アルゴリズム
単純選択法も,バブルソート同様,パス1回ごと
に最小値を1つ先頭に移動することで,配列の端か
ら順にソートしていく方法だ。ただ,最小値を移動
するとき,ほかの要素をずらす代わりに,単純に,
先頭要素と最小値の位置を交換する。
1) 最初は配列全体を検索範囲とし,検索範囲中か
ら最小値を探す。見つけた最小値は検索範囲の先頭
要素と位置を交換する。ここまでが1回分のパス。
2) 先頭要素は確定した。検索範囲の下限をずらし,
第2要素以降からふたたび最小値を探して,検索範
図3 単純選択法
初期状態
51 45 76 23 38
16145 76 23 38
ソート完了
83
83
83
83
83
23 38 45 51176 83
23 38 45 51 60183
23176 45 38
23 38145 76
23 38 45 176
16
51
51
51
51
60
60
60
60
60
60
76
囲の先頭と交換する。
3) 以下,同様に検索範囲を狭めつつ,最小値を探
しては先頭と交換する。残り要素が1個になったと
きにはソートが完了している。
図3に動作の様子を示す。
•プログラム例
最小値を探す処理は,検索範囲の端の要素を仮の
最小値としてレジスタに保管しておき,以降の要素
と順次比較して,“仮の最小値”より小さい値を見
つけたらレジスタに拾い上げる(仮の最小値とす
る),という操作を繰り返すことで行える。
リスト6が単純選択法のプロダラム例だ。いくつ
か作ったなかから比較的綺麗な版を選んでみた(そ
の割にはループ構造がひねている)。
外側のループは25行から始まる。残り要素数が1
以下かどうか(ソートが完了したかどう力、)を調べ
てから,28〜29行で仮の最小値を dO に,その位置
を a 3 に入れておき,30〜33行の内側のループで順
次比較を繰り返す。検索方向は検索範囲の後ろから
前方向に行っている(逆にした版はどうも収まりが
悪かった)。ひととおり比較し終わった時点で d 0 に
真の最小値, a 3 にその格納位置が残っているから,
23〜24行で,検索範囲の先頭要素と交換する。
|単娜
23 38 45 51 60 76183
単純揷入法は,配列を“いちおう順序が整った部
分”と“そうでない部分”に分けて,未整理の部分
から1つ要素を取り出しては整理ずみの部分の適当
な位置に挿入することでソートしていく。ある意味
で,バブルソートや単純選択法とは逆の発想に基づ
くアルゴリズムといえる 0
#ァルゴリズム
1) 最初は配列の先頭1要素だけが整理ずみ,残り
が未整理と考える(要素が1個しかない配列は常に
ソートずみである)。
2) 未整理部分の先頭,つまりは,配列の2番目の
要素を抜き出し,これを整理ずみの部分の適当な位
置に揷入する。ここまでが1パス。
3) 2) の時点で整理ずみの部分は要素1個分伸び,
未整理部分は1個分削られた。ふたたび,未整理部
12345878901234567890
22222222233333333334
74 Oh ! X 1991.2.
分の先頭 = 配列の 3 番目の要素を抜き出し,整理ず
みの部分の適当な位置に挿入する。
4) パス1回ごとに未整理の要素が1個ずつ減って
いく。それが0になったらソートは完了する。
以上の様子を図4に示す。
_プログラム例
挿入位置を探す処理は,単純に,整理ずみの範囲
の端から順に比較を繰り返すことで行える。このと
き,整理ずみの範囲の末尾から先頭方向に比較して
いくことにすれば,挿入しようとするデータよりも
大きな値をどんどん後ろにずらしていくことで,挿
入位置の検索とデータの移動を並行して進めること
ができる(図5)。
では,リスト7にプログラムの実例を示そう。例
によってプリデクリメント•アドレスレジスタ間接
形式を嫌う方針により,パスの方向を逆にして,整
理ずみの部分は配列先頭ではなく,配列の末尾にお
くようにしてある。 a 2 が整理部分と未整理部分の
境界を示し, a 2 以降が整理ずみだ。挿入位置はそ
の a 2 から後ろに向かって探してい〈形になる。ほ
かの部分に若千しわよせがいっているが,内側のル
ープ中もっとも頻繁に実行される27行にポストイン
クリメント•アドレスレジスタ間接形式を適用する
ためならなんでもありだ。
引数の取り込み後,20行でまず整理ずみ部分と未
整理部分の境界 a 2 を初期化する。最初は配列の末
尾の要素ただ1個が整理ずみの領域に入り,残りが
未整理となる。
22行から外側のループが始まる。ここでは,挿入
位置を探すボインタとして使う a 3 を初期化して(初
期値は整理ずみ部分の先頭 = a 2) から,23行で境
界をずらすと同時に,新規に揷入するデータを d 0
に取り込む。その後,24行で境界が配列の先頭を越
えたかどうかを調べ,越えたとなればソート完了と
判断してループを抜ける。配列先頭との アドレス 比
較の前にデータを取り込んでしまって いるのは 反
則 5 > なのだが,大目に見てもらいたい。
以下,27行からが内側のループ。ここでは a 3 を
順次進めつつ,挿入すべきデータとの比較を繰り返
し,挿入位置を探している c 挿入位置が見つかるま
では31行で揷入場所を作るためにデータをずらし,
挿入位置が見つかったら38行に飛び,適切な位置に
データを収める。どちらの場合も,27行の比較の時
点でポインタをボストインクリメントしている関係
で, a 3 は挿入位置を派手に通り過ぎている点に注
意してもらいたい。
図4単純挿入法
初期状態 51145 76 23 38 16 83 60
45 51 |76 23 38 16 83 60
45 51 76123 38 16 83 60
23 45 51 76138 16 83 60
23 38 45 51 761 16 83 60
16 23 38 45 51 76183 60
16 23 38 45 51 76 83丨60
ソート完了 16 23 38 45 51 60 76 831
ところで,挿入データがどの整理ずみデータより
も大きかったときには,挿入位置が見つからないま
ま配列の端に達することになる。32行のアドレス比
較がこのためのチェックであり,このチェックに引
っ掛かった場合は速やかにループを抜けて35行で配
列の最後尾にデータを格納する。
•改良案
リスト7では内側のループの脱出条件に次の2通
り力 f ある。
1) 挿入位置が見つかった(揷入する値以上のデー
夕が見つかつた)。
5) 124〜25行のチヱックに引っ
掛かってループを抜ける直前
には,すでに23行の時点で a 2
は配列の領域外を指している。
読むだけで書き換えるわけで
はないとはいえ,引数として
渡された配列の外にアクセス
するのは不作法だ。
図5単純挿入法における挿入位置の検索
この状態から60の挿入位置を探す
1
60 < 83だから揷入位置はもっと前
丄
60 < 76だから揷入位置はもっと前
i
60 >51だから挿入位置はもっと後
1
ということはここ
16 23 38 45 51 76 83 60
16 23 38 45 51 76 83 □
60
16 23 38 45 51 76 □ 83
60
16 23 38 45 51 □ 76 83
60
16 23 38 45 51 60 76 83
表1ソート時間(単位:秒)
n =500
n =1000
n =2000
n =4000
n =8000
バブル ソー ト
A
0.90
3.60
14.46
57.76
231.33
B
0.89
3.59
14.45
57.84
231.05
C
0.89
3.60
14.39
57.34
229.81
D
0.73
2.94
11.77
47.10
188.41
E
1.07
4.28
17.15
68.64
274.57
F
0.73
2.94
11.77
47.10
188.41
バブル ソー ト
A
0.92
3.70
14.87
59.45
237.74
(改良したつもり
B
0.92
3.65
14.84
59.47
237.81
だった版)
C
0.91
3.67
14.75
58.84
236.18
D
0.00
0.00
0.01
0.02
0.04
E
1.12
4.50
18.00
72.03
288.12
F
0.00
0.00
0.01
0.02
0.04
シエ ーカー ソ ー ト
A
0.70
2.78
11.20
44.64
179.26
B
0.68
2.77
11.24
44.88
178.18
C
0.69
2.81
1 1.05
43.56
175.44
D
0,00
0.00
0.01
0.02
0.04
E
1.14
4.56
18.24
72.92
291.60
F
0.00
0.00
0.01
0.02
0.04
単純選択法
A
0.52
2.07
8.23
32.82
131.08
B
0.52
2.06
8.22
32.80
130.98
C
0.51
2.06
8.21
32.76
130.91
D
0.83
3.34
13.35
53.41
213.59
E
0.67
2.69
10.77
43.06
172.21
F
0.51
2.05
8.18
32.72
130.84
単純挿入法
A
0.38
1.52
6.15
24.37
98.00
B
0.37
1.50
6.13
24.54
97.37
C
0.37
1.51
5.98
23.40
94.57
D
0.00
0.00
0.01
0.03
0.07
E
0.75
3.03
12.13
48.54
194.16
F
0.00
0.00
0.01
0.03
0.07
単純挿入法
A
0.34
1.36
5.52
21.88
88.00
(番人あり)
B
0.33
1.34
5.50
22.04
87.43
C
0.33
1.35
5.37
21.01
84.91
D
0.00
0.00
0.01
0.03
0.06
E
0.68
2.72
10.90
43.60
174.36
F
0.00
0.00
0.01
0.03
0.06
A :ランダム
B :ランダム(同ーデータが重複している確率が A の100倍)
C :ランダム(同1000倍)
D :ソートずみ
E :逆順にソートずみ
F :全要素が0
X 68000 マシン語プログラミング 75
ATOP:
ABOT :
仔号つき :} 2 ビットデータの配 ^ を昇順に、ノートする
( 職挿入法)
8000 要素のソートに 98.00 秒
.xdef sort
•offset 8
.ds.l 1
.ds.l 1
.text
.even
*&arraylG] ( 配列の先頭アドレス)
*&arraylN] ( 配列の最終アドレス +1 〉
link a6,#0
movem.1 dO-dl/a0-a3 , - (sp)
movem. l ATOP(a6) ,a0-al *a0 二 g 故 lj5feg 頁アドレス
=^1=配^』末尾+1のァドレス
100 pi :
-4(al),a2
movea.1 a2,a3
move.1-(a2),d0
本 a 2 = 整理済み部分と未整理部分の ■
本 a3 = 挿入位置を指すポインタ
»d0 = これから挿入するデータ
リスト日 SORTB. S
cmpa. 1
bcs
a0 , a2
done
♦ 未整理部分はもうない?
* そうなら終了
loop2 :
move.1
cmp.1
ble
(a3)+,dl
dl,d0
found
* ここは
本挿入位置?
* そうな 6 ノト-ブを抜ける
move.1
cmpa.1
bcs
dl , - 8{a3)
a 1,a3
10 op2
本のちの挿入時に備えて要素をずらす
* 配列の端に遠するまで
* 繰り返す
insert :
move.1
bra
d0,-(a3)
100 pi
* 端につけ足す
found :
move•1
bra
d0,-8{a3)
100 pi
ホ挿入する
done :
movem.1
(sp)+,d0-
dl/a0-a3
unlk a6
rts
.end
ATOP :
ABOT :
符号つき: 32 ビットデータの配列を昇順にソートする
( 職挿入法:番人を S く版〉
8000 要素のソートに 88.00 秒
.xdef so
.offset 8
.ds.l 1
.ds.l 1
*&array[0] ( 配列の先頭アドレス)
*&array[N] ( 配列の最終アドレス +1)
10
本
11
.text
12
.even
13
本
14
sort :
15
1 ink
a6, #0
16
movem.1
d0~dl/a0-a2,-(sp)
17
18
movem.1
AT0P(a6),a0-al
章 a0 = |
19
♦ al=|
20
move.1
#$7fffffff,(al)
* 番人
21
subq•1
#4 , a 1
*al=|
22
bra
next 1
23
24
100 pi:
10 op2:
move.1
(a2)+,dl
» ここは
25
cmp.1
dl,d0
* 揷人位!!?
26
ble
found
* そうならループを抜ける
27
28
move.1
dl , - 8(a2)
* のちの捕入時に備えて
29
30
bra
loop2
* 要索をずらしていく
♦挿入位置が見つかるまで
31
32
found :
move.1
d0,-8(a2)
* 繰り返す
♦揷入する
33
34
next 1 :
movea.1
a 1,a2
*a2 = 揷入位置を指すポインタ
35
move,1
-(al) , d0
*d0 = これから揷人するデータ
36
cmpa.1
aO, al
* 未整理部分がなくなるまで
37
bcc
100 pi
* 繰り返す
38
39
done :
movem.l
(sp) + , d0-d1/aO-
-a2
40
41
42
43
unlk
rts
.end
a6
2) 挿入位置が見つからないまま配列の端に達した。
ループ1回につき,条件判断が2つあるのは実行
速度の点でも,プログラムの簡潔さという点でもあ
まりよいことではない。このような場合には,“番
人”を置いて,ループの脱出条件をひとつにするこ
とができないかどうかを考えてみるべきだ。
番人 ( sentinel :番兵,見張り,標識などとも訳
される)とは,アルゴリズムの導入上,仮に追加す
る終端データのことをいう。いま,ソートする配列
のすぐ後ろに,配列中の最大値以上の値(それが番
人)を置いてみる。たったそれだけのことで,上の
2) のチェックは不要となる。挿入位置の検索が配列
の端に達したときには,番人との比較が行われるこ
とになり,必ず 1) のチェックに引っ掛かるからだ。
リスト7の21行のあたりに番人をセットする1行
を付け加え,32〜36行をばっさり削って,
bra 10 op 2
に置き換えたうえで,ループ構造やレジスタの使い
方を多少最適化したらリスト8のようになった。
20行で番人をセットしている。いま扱うデータは
符号つき32ビット数だから,その最大値である 7 FF
FFFFFh を番人に使う0ここで,サブルーチンに
渡された配列の直後には番人を収めるだけの空きが
あることを仮定している。このサブルーチンを呼び
出すときには,呼び出し側がその分のメモリを確保
しておかなければならない。その意味で,番人を利
用する アル ゴリ ズムは メイ ンルーチンに 余計な負担
をかけるといえる。安全を期すなら,リスト1のテ
ストプログラムも, 154 行を,
sdata : . ds.l MAXDATA +1
に修正してアセンブルし直したほうがよいだろう
(直後は未使用のスタック領域だから,修正しなく
ても実害はないが)。
ホ
とりあえず,今回作った各プログラムに対して,
いろいろな種類•大きさのデータを与えてみたとき
の実行時間を表1に示しておく。表中 A 〜 F はテス
トデータの傾向で, A 〜 E がリスト2の70〜100行
にそれぞれ対応する。
どのアルゴリズムも,要素数 ( n とおく)を倍に
すると,実行時間が4倍になるのがわかると思う。
実行時間は n 2 に比例し, n が増えると放物線を描
いて急激に上昇してい〈。後編では,この上昇カー
ブがずっと緩やかなソートアルゴリズム,シェルソ
一卜,ヒープソート,クイックソートが登場する。
今月紹介した単純なアルゴリズムとの性能の差は歴
然としていて,クイックソートに至っては,8000個
のデータのソートに1秒とかからない。では。
U スト 7 SORT5.S
4567890123456789012345
2222223333333333444444
76 Oh! X 1991.2.
も多いかもしれませんね。そのころ中学生
だった私がこうして原稿を書いているので
すから,時がたつのは早いものです。
プログラムは Music BASIC 用です。短
いし,使い回しがきく行もありそうですか
ら,入力もかなり楽でしよう。曲を聴いて
いると,おばさんが等身大のスプーンと
躍っているシーンが思い出されます。明る
〈て,とっても楽しい曲ですよ。小節によっ
てはパートがかなり空いているようなので,
いろいろと遊んでみるのもいいかもしれま
せんね。
さて,新年早々にやっためぞん一刻の反
響で「 XI でもなんかやれ〜」という,な
かなか無責任なリクエストが届いています。
全体的に見ると XI のほうがジャンルら豊
富だし,投稿者の層も多彩です。「やれば
できる」ということを知っているユーザー
が多い事もあるのでしようが,「やらない
とアブナイ」という意識もあるのでしよう。
やはり自分で作って投稿していただく!:,
XI 用のプログラムも増えて嬉しかったり
するんです(なんといっても私も XI ユー
ザー)。加藤君も XI の投稿の少なさを嘆い
て投稿してくれました。皆さんもがんばっ
てください。
それでは来月もまたこの雑誌のこのペー
ジでお会いしましよう。 ( S . K .)
Y _« U (?), 録:刺政
お待たせしました。久しぶりに登場の立
川君です。良い子のための FM 音源講座や Y
コマンド でけ)もうお馴染みですよね。
今回の作品では彼らしい Y コマンドの 使い
方がみられませんが,曲のデキは折り紙付
きです。
さて,その曲はエニックスのアドベンチ
ヤーゲーム , Misty Blue のオープニング
テーマです。このゲームは PC -8801 用で
すので,本紙の読者には馴染みが薄いタイ
トルかもしれません。曲の雰囲気は,ひと昔
前に流行っていた , “SHOW ME ” みたい
な感じです。その曲をタイトルとしていた
“男女7人秋物語”が恋愛ドラマだったこ
とも考えると , Misty Blue はここいらへ
んを意識しているのかもしれませんね。
この作品ではパンポットが命ともいえそ
Misty Blue
10
20
30
40
50
60
70
うで,ステレオ感がとてもうまく表現され
ています。ヘッドホンか,左右がきっちり
と離れて いる スピーカーの定位置で聴きま
しょう。なお, OPMA 用に調整されてあ
るようですので,ボスコニアンのサンプリ
ングデータをお持ちの人はそちらで聴いて
ください。
ワンポイント•テクニック として, ファ
ンクシヨン キーの19,20に テンポを 指定す
る コマンドを 入れているようですね。試し
に 演奏中に シフ トキーと F 9 キーを押して
みてください。早送りになったでしょう。
おそらく,制作中にひんぱんに使うのでし
ょうが,確かに便利です。こういった ファ
ンクシヨン キーの有効利用は大いに結構で
すが, F 1 〜 F 10 は皆さんそれぞれがある程
度設定し直して使っていることでしょう。
もし, プログラムに 残すときは F 11 〜 F 20
とか普段あまり使わないようなところに入
れておくほうがよいようですね。
( 今日はおばさんのバースディ|
XI 用には NHK の アニメ 「スプーンおば
さん j より,「リンゴの森の子描たち」を
お送りしましよう。これはこの番組のエン
ディングテーマだったものです。8年前と
いうかなり昔のモノですので,知らない人
リスト1 Misty Blue
とにもかくにも
Misty B 1 u e j
なのであります,はにや •
80
/«
P
r o
8 r
a m e
d
by
立川正之
in 1990/12/9
90
/*
100
dim
char
v(4,10)s
{
lie
/«
AF
OM
WF
SY
SP
PMD
AMD
PMS
AMS
PAN
120
58,
15,
0.
0,
e .
0.
〇 »
0.
0,
3,
0.
130
ハ
AR
DR
SR
RR
SL
OL
KS
ML
DTI
DT2
AME
140
31,
0,
0.
0,
0,
33,
0,
3,
0,
0 ,
0»
150
31,
0,
0,
e,
0,
55,
0,
10,
0 ,
1,
e ,
160
31,
0.
0,
0,
0.
33,
0,
1 ,
0,
0,
0,
170
31,
16,
0,
4,
0)
180
m_vset(71
,v)
190
ハ
200
v=l
210
/•
AF
OM
WF
SY
SP
PMD
AMD
PMS
AMS
PAS
220
60 t
15,
0,
0,
0,
0.
〇 ,
0,
0,
3,
0,
230
ハ
AR
DR
SR
RR
SL
OL
KS
ML
DTI
DT2
AME
240
31 t
10,
0 ,
250 31,10,
260 31, 20,
270 31,10,
280 m vset(72•v)
290 ハ
300 vrl
310 ハ AF OM
320 8,15,
330 /• AR DR
340 5, 0,
350 6, 0,
360 7, 0,
370 28, 0,
380 m vseti73,v)
.390 ハ
400 v={
410 /* AF OM
420 60,15,
430 /* AR DR
440 31, e,
450 15,15,
460 31, 0,
470 15,15,
480 nj_vset ( 74 , v)
in • 91
i Masayuki
: /J/ilAY L • I • V • E ■
X 68000 用
Misty 日心よりオーフーノクフ"ーマ曲立川正之
Xl / tu 「 bo 用
スプ-ンおばさんより リンゴの森の子猫たち ■
正月気分もすっかり抜けて,まだあわだだ
しい日常が戻ってきましだが,皆さんいか
がお過ごしでしよろか。さて,今月はエニ
ックスのゲームミュージック1本と,アニ
メ「スブーンおばさん」のエンディングテ
ーマをお届けします。こだつでみかんでも
食べながらのんびりと打ち込んで,楽しん
で < ださい。
日本音楽著作権協会(出)許諾第9072264 -00 1号
0 h!X UVE in *91 77
490
500
510
520
530
540
550
560
570
580
590
600
610
620
630
640
650
660
670
680
690
700
710
720
730
7^10
750
760
770
780
790
800
810
820
830
8-10
850
860
870
880
890
900
910
920
930
9-10
950
960
970
980
990
1000
ieie
1020
1030
1040
1050
1060
1070
1080
1090
1100
1110
1120
1130
1140
1150
1160
1170
1180
1190
1200
1210
1220
1230
1240
1250
1260
1270
1280
1290
1300
1310
1320
1330
1340
1350
1360
1370
1380
1390
1400
1410
1420
1430
1440
14 50
1460
1470
1480
1490
1500
1510
1520
1530
1540
1550
1560
1570
1580
1590
1600 v={
1610
/*
AF
0M
WF
SY
SP
PMD
AMD
PMS
AMS
PAN
1620
44,
15,
0,
0,
0,
0,
0,
0,
0,
3,
0,
1630
い
AR
DR
SB
RR
SL
0L
KS
ML
DTI
DT2
AME
1640
31,
0,
0,
0,
0,
22,
0,
8,
3,
0,
0,
1650
18,
0,
0,
6,
0,
2,
0,
8,
3,
0,
0,
1660
31,
0,
0,
0.
0,
22,
0,
8,
7,
0,
0 ,
1670
31,
0,
0,
6.
0,
2,
0,
8,
7,
0,
0J
1680
m
vset(86 , v)
1690
/*
1700
v =
(
1710
/*
AF
0M
w?
SY
SP
PMD
AMD
PMS
AMS
PAN
1720
58,
15,
0,
0,
0,
0,
0,
0,
0,
3,
0,
1730
/*
AR
DR
SR
RR
SL
0L
KS
ML
DTI
DT2
AME
1740
16 f
0,
0,
7,
0,
36,
0,
1,
7,
0,
e,
1750
16 f
0,
0,
7,
0,
46,
0,
8,
3,
0,
o,
1760
16,
0,
0,
7,
Q,
46,
0,
1,
7,
0,
0,
1770
16 ,
6,
0,
7,
1,
0,
0,
2,
3,
0,
01
1780
m vset{
87,v)
1790
/«
1800
V-
(
1810
ハ
AF
0M
WF
SY
SP
PMD
AMD
PMS
AMS
PAM
1820
60,
15 ,
0,
0,
0,
0,
0,
c,
0,
3,
o,
1830
/*
AR
DR
SR
RR
SL
0L
KS
ML
DTI
DT2
AME
1840
31,
0,
0,
13,
0,
26 (
0,
4,
7,
0,
0,
1850
14,
15 ,
0,
13,
2,
2,
0,
2,
7,
0,
a,
1860
31,
0,
0,
13,
0,
31,
0,
8,
3,
0,
0,
1870
14,
15,
0,
13,
2,
10,
0,
4,
3.
0,
0)
1880
m
vset(83,v)
1890
/*
1900
V:
(
1910
ハ
AF
OM
WF
SY
SP
PMD
AMD
PMS
AMS
PAN
1920
60,
15,
0,
0,
0.
G,
0,
0,
0,
3,
0,
1930
/«
AR
DR
SR
RR
SL
0L
KS
ML
DTI
DT2
AME
1940
31 ,
0,
0,
0,
0,
26,
0,
8,
7,
0,
0,
1950
21 ,
16,
0,
T,
5,
0,
0,
4,
7,
0.
0,
1960
31,
0,
0,
0,
0,
31,
0,
4,
3,
0,
0,
1970
21 ,
16,
0,
7,
5,
8,
0,
2,
3,
0,
0}
1980
m
vset {
89 ,v)
1990
/*
2000
V-
(
2010
/*
AF
0M
WF
SY
SP
PMD
AMD
PMS
AMS
PAM
2020
58,
15,
3,
1,
237,
0,
88,
0,
1,
3,
0 ,
2030
/*
AR
DR
SR
RR
SL
0L
KS
ML
DTI
DT2
AME
2040
28,
4,
0,
2,
1,
38,
2,
1,
3,
0,
0 ,
2050
22,
9,
1,
0,
1,
48,
2,
12,
0,
0,
0,
2060
29,
4,
3,
3,
1,
38,
1,
3,
?,
0,
0,
2070
15,
T,
4,
2,
5,
0,
2,
1,
0,
0,
0}
2080 m vset(90,v)
2090 /事
2100 m_init( ) : for i=1 to 8 : m_alloc( 1 , 8000 ): next
2110 for i=1 to 8:m_assign(i,i) : next
2120 str a(256J,b(256],c[256],d[256],e(256],f(256]
2130 str gi256),h( 2561,j(256J,k[256],11 256 ],m[256]
2140 str n[ 256) ,0(256),p[256J,q[256J,r(256] t s[256]
2150 str t[256),u(256],w( 2561 ,x{256j,y[256],z[256]
2160 str aa[256],bb(256],cc[256],dd(256],ee(256|,ff[256]
2170 str gg[256] ,hh[256] ,jj 1256] ,kk [256] ,11 [2561 ,mm[256]
2180 str nn(256|,oo[256J,pp(256|,qq[256],rr[256],ss(256J
2190 str t.tC256] ,uu[ 256] ,ww( 256] ,xxt256] ,yy(256J ,zz[256]
2200 str sd[256J,bd[256],tl[256},t2[ 256] ,t3[256],t4[ 2561
2210 key 19,"m tempo(200J"+chrS(13) : key 20,"m_tempo(117)"+chrS{
13)
2220 /*
2230 /•
2240 a="tl17 [d.c.) o5 9Llrll6 ¢71 p3 q8 vU 748,20 yl5,0
2250 b="aeeevl3plep2ep3vl4eeeevl3p2eplfrvl4p3fee
2260 C="ddddvl3pldp2dp3vl4ddddvl3p2dplervl4p3edd
2270 esb+c+c+b
2280 d="«78*v0®79p3o2|:4r®78»v0«79vl4>fv8plr8t78«v0«79vl4gv8plr
8978#ve«79vl4g6...v8plr4r«78®v0®79vl4gv8plr8«78»v0«79vl4fv8plr8»
789v0«79vl4g6..,v8pl
2290 e= w r4r<«78«v0«79vl4cv8plr8®78#v0®79vl4cv8plr8«78«v0«79vl4c
6...v8plr4r«78*v0«79vl4cv8plr8#78«vC«79vl4cv8plr8«78«v0«79vl4c6.
..v8plr4 : |
2300 fs 、 8505 vll| : 3r8aa<e>a<a>ar2r8*g<d>g<g>gr2r8aa<e>«<a>»r2r8
aa<e>a<a>ar8e8dc8d:jr8»a<o>a<a>ar2r8gg<d>g<g>gr2r8aa<e>a<a>ar2rl
o5«71p3q8vl4y 48,20
2310 zz= H [*]
2320 ■ trk<l,a> / 拿 OPMA の SamplingFile
2330 a trk(l,c> /* [Z あわせてちようせつしてあります •
2340 ■ trk<l."[coda ド .c)
2350 a trk(l,c) / • なるへ * <OPMA て * きいてくた * さい,
2360 ■ trk<l,c> /*
2370 ■ 一 trlcU,c> /«
2380 ■ trk{l,o) /*
2390 n_trk<l,c) ft
2400 b trk(l.d) /*
2410 m_trkU,e 丨ハ
2420 «_trk(l,f) /*
2430 m_trk(1,zz) /•
2440 ft
2450 /*
2460 a=" [d.c.) o5 911rll6 «71 p3 q8 v!4 y49,16
2470 b="ccccvl3plcp2cp3vl4ccccvl3p2cplcp2rvl4p3ccc
2480 c=">bbbbvl3plbp2bp3vl4bbbbvl3p2bplbp2rvt4p3bbb<
2490 c=b+c+c+b
2500 d=**a78«v0«79p2o2 I : 4r«78®v0«79vl4>p2ev8plr8«78«v0«79vUp2ev
8plr8«789v0«79p2vl4e6...v8plr4r«78®v0«79vl4p2ev8plr8«78®v0«79vl4
p2ev8plr8«78«v0®79vl4p2e6.•.v8pl
2510 e= H r4r«78«v0«79vl4p2av8plr8*78«v0879vl4p2av8plr8«78«v0®79v
14p2a6...v8plr4r«78«v0«?9vl4p2av8plr8«78«v0«79vl4p2av8plr8»78«vO
079vl4p2a6...v8plr4 : |
2520 f=-«85o5vlly 49,441 :3r8aa<e>a<a>ar2r8gg<d>g<l>gr2r8aa<e>a<a
>ar2r8aa<e>a<a>ar8e8dc8d : Ir8aa<e>a<a>ar2r8ag<d>g<g>ar2r8aa<e>a<a
>ar2rlo5«71p3q8vl4y49 f 16
2530 m trk(2,a) /«
2540 m_trk(2,c) /*
2050 m trk(2, , *[coda) n +c) /*
2560 m trk(2,c) /*
2570 m_trk<2,c> / 聿
0^0000
N320OOO
A T
p D
s o l 3 3 7 7
M T
A D
s o L 8 4 4 2
D o s o o o o
p o L o 5 o 5
s s
Y o R o 7 o ?
s R
A 6 A 3 3 3 3 t
0 E o o o o
M
N320000
A T
p D
s o l 0 o o o
>1 T
A D
0 o L 2 o 2 2
D o s 1 t 11
M K
D o し o 5 o 2
M 0 3 15
3 0 0 0
N320000
A T
p D
s 1 l 7 o 3 o
M T
A D
D 8 s C
M 8 K
p 7 し
s 3 s
> A 3 2 3 2 <
o E 0 o o o
3 0 2 0 0 0 0
5 0 10 0 0 0
s o し o o o o
M M
p
D o s 0 o o o
o E o o 0 0
,•320000
s o 1 3 3 7 7
M T
A D
s o L 8 8 6 6
D o L 7 7 7 7 D o し 5 5 0 5
M 0 2 2 2 2 M o1 1
Y o R 5 5 5 5 Y
s R 11 i 1 1 s
o R 4 4 4 4
M5R0606 V N5ROOOO V M 5 R 4 9 4 7 V
o1 D l 1 o1 D 1 l 1 > 01 D »
.lOROOOO V
FOROOOOt
A A e
M 5 R o 5 0 5 V
o1 D 1* 1 11 »
0^0000
^320000
PD1
s 112 2 3 3
mdt
s 0 L 5 8 7 2
PMMl
D 8 s 0 0 0 0
AM8K
D 0 L o 5 2 o
M o 3 3
p
p 7 L 2 2 3 2
s 3 s
2
Y 1 R 6 6 6 9
s R
M5R1119 V
01D2221 I
8e
F9^1111t
A5 ん 3333 e
o B o o 0 o
AM
^320000
s 0 1 3 3 7 7
AMDT
s 0 L 8 4 4 2
M M
p
D 0 3 0 0 0 0
M K
p 0 L o 5 o 5
s s
Y 0 R o 8 o 8
s R
F 0 R 0 6 0 6
w s
H5R0606 V
o1 D 1 1 f
o E o 0 o 0
A.
AN3 2 0 0 o 0
p D
s 0 16 3 3 o
M T
A D
s o L 1 1 T 1
M Ml
p
D o s 3 3 1 3
amk
D o L 3 2 2 2
M 0 3 2 2
p
p 0 L 5 1 0 1
s 91 1
Y 0 R 5 6 0 7
3 R 1
F 0 R 0 7 5 4
w s
o E 0 o 0 0
AM
N3200OO
A T
p D
s 0 1 3 5 3 0
M T
A D
s 0 L 1 3 11
M M
p
D 0 s 21 0 1
M K
A
D 0 L 3 2 2 o
M 0 2 3 4
p
a. 0 L c
s s
Y o R 8 8 8 8
s R
F 0 R 2 0 0 0
w s
M5R4967 V M 5 R 7
o1D1 1 » OID
J 8 8 8 8
.N328888
A T
p D
•• T
CD
^ o L 8 8 8 8
D 8 s
”8 K
3 3 3 3
(»v)
D o L 8 8 8 8
M o
p
p 7 8 8 8 8
s 3 s
2
Y 1 R 8 8 8 8
s R
F 3 R 8 8 8 8
w s
M5R8888 V
OID I
F8R101O t F80^26o8t F7R 8888 t
A 2 A 3333 eA5AJ 1121 eA Js
o E o o o o
,•320000
C T
U D
s o L 218 4
M M
p
D o s o o 0 o
AMK
D o L 5 o o 3
M 0 2 3
p
p o L 0 5 o 5
s s
V o R o 5 o 5
s R
r0 R
n s
M 5 R o 5 0 5 V
OID 1 1 I
5
8
FORllllt
A6A 3233 e
II 拿 拿
,V / /
I 寒 s 拿 拿 1拿 ii t 拿 ItS 鬈拿 |拿:拿 拿 I 拿嫌 I 拿
m / V / / m / V / / m / V / / m / V / / m / V /
I 拿:搴 拿
ra / V / /
78 0h! X 1991.2.
►いやはや,なんともありがたいデイスタでした。あの福原氏の CG データがあっただけで
もうれしいのに,この充実ぶり。う一ん,そういえば描の CG を見て,昔常連になるぞ宣言
をしたときの山田氏の絵とはだいぶ違う雰囲気がしました。 富田祐樹 (18) 東京都
2580 m trk(2,c) /«
2590 m trk(2,c) /*
2600 m trk(2,cJ ハ
2610 m trk(2,d) /»
2620 m_trk(2,e) /•
2630 m_trk(2,f) /«
2640 n trk(2,zz) /«
2650 /«
2660 /•
2670 a:" Cd.c.J o4 «llrll6 «71 p3 q8 vl4 y 50,21
2680 b="bbbbv13plap2ap3vl4aaaavl3p2aplap3rvHp3aaa
2690 Cs"aaaavl3plgp2gp3vl4ggffgvl3p2<plgp3rvl4p3g2f{
2700 c=b+c+c+b
2710 d="9784v 0980 vl3o3I:15v9plcv5p2cvl3p3ccv9plcv5p2cvl3p3ccv9p
Icvl3p3cp2cp3cplcp3cv9p2cvl3p3c : |
2720 e : "v9plcv5p2cvl3p3ccv9plcv5p2cvl3p3cc
2730 f="e7 7o5(»vl2Sdl<9vl26c-19vl27d8.d8.c8dBc>a8. <e8cNd8c8d8. >88.
&3 , • • r4x8>ie8 . r2<erdrcrd8r8d8c8d8c>»8 . <e8d Id8c8d8 . >g8. a3 . . . v11 bijii
a I r8,«83o5vl5q7p2arer«<crc>bragrap3
2740 2 : "9vl27<47 7o5d8.d8.c8d8c>a8. <e8d Id8c8d8 . > «8 . a3 . . . rl«a»ie8.r
2<erdrcrd8r8d8c8d8c>a8 . <e8d-id8c8d8 . >g8 . a3 . . . r4ergarlo4®7 Ip3q8vl4
y 50,24
2750 m trk(3,a) /«
2760 n_trk(3,c) /•
2770 n trk(3,"tcodal'+c) /*
2780 n~trk(3,c) /«
2790 n_trk(3,c» /*
2800 n trk(3,c) /•
2810 m_trk(3,c) /«
2820 n_trk(3,c) /«
2830 m_trk(3,d) /*
2840 m trk(3,e) /*
2850 n_trk(3,f) /«
2860 m trk(3,g> / 拿
2870 m trk(3,zz) /»
2880 ハ
2890 /<
29ea as- 【 d.c.l 、 o4 «12rll6 488 p3 q8 rl6 v8 y 51,20
2910 bs M a2..e8g2..r8g2..b8a2..r16 【 coda]o 1972
2920 c=~| : 6tvl27a8v7plrp2rp3«vl27egaav7p2rp3®vl27av7plrp3«vl27e
av7p2rp3<«vl27cv7plrp3>«vl27g8v7p2rplrp3®vl27daggv7plrp3«vl27gv7
p2rp3«vl27dgv7plrp3®vl27dv7p2rp3«vl27g8v7plrp2rp3
2930 d^"tvl27deggv7p2rp3«vl27iv7plrp3®vl27div7p2rp3«vl27dv7plrp
3®vl27a8v7p2rplrp3®vl27e*aav7plrp3«vl27av7p2rp3«vl27eav7plrp3«vl
27«v7p2rp3 : I
2940 •=”I : 4«vl27g8v7plrp2rp3«vl27>fg<degg<l>gv7p2rplrp3«vl27dv4
p2rp3#vl27f8v7plrp2rp3>«vl27gf<defg<g>gv7plrp3®vl27«g8
2950 fs"»8v7p2rplrp3«>*127>aa<egaa<a>av7p2rplrp3«vl27ev7plrp3®vl
27a8v7p2rplrp3>«vl27a»<egaa<*>av7p2rp3«vl27ae8:||:3
2960 g="f8v7plrp2rp3®vl27fcdfv7plrp3®vl27fv7p2rp3®vl27cfv7plrp3
•vl27cv7p2rp3*vl27e8v7plrp2rp3#vl27cb<e>ev7plrp3®vl27ev7p2rp3
2970 h=7«vl27dev7plrp3«vl27gv7p2rp3®vl27a8v7plrp2rp3®vl27aegav7
Plrp3«vl27av7p2rp3®vl27<ab<cv7plrp3>#vl27a8v7p2rplrp3«vl27aegav7
p2rp3«vl27av7plrp3€vl27gab<cv7p2rp3>«vl27 : I
2980 J="®vl27dev7plrp3«vl27gv7p2rp3®vl27a8v7p2rplrp3®vl27aegav7
p2rp3®vl27av7plrp3«vl27*av7p2rp3«vl27aav7rl
2990 «_trk(4,«) /*
3000 o_trk(4,b ) ハ
3010 m_trk(4,c) /«
3020 m_trk(4,d) /*
3030 b trk(4,e) /«
3040 m trk(4,f) /*
3050 m trk(4,g) /*
3060 m trk(4,h) /«
3070 n trk(4,tf) /*
3080 b trk(4,j) / 拿
3090 m trk(4,zz) /*
3100 /«
3110 ハ
3120 «=" (d.c.) o4 «12r 18 «88 p2 q8 r8 v8 y52,12
3130 b="a2. .eg2 . . rg2 . .«78«v0o2®7 3p2vl 4a4vl3a&vl2a1tvl2atvl latvlO
a&v9a&v8a[coda]978«v0976vl3o6q5aq8989plvl 303116
3140 c="arerarearaerarergrdrgrdgrgdrgrvlOgrvl3ardrgrdgrgdrgrbra
rerarearaera07 8dv0r976v 13o6q5a8q8<489pl vl3o3
3150 d= M arerarearaorarergrdrgrdgrgdrarvlOgrv13grdrgrdgrgdrgr976
V*l0o4q4plap3b<p2c>p3b<plcp3dp2ep3degab<c2e2 978^v0<l76v 13o6q5ar4 .
3160 e="077oI0vl27q8a8.b8.<c8>b4.g3...r2g8.a8.b8b4.a3...476vl3o
6q5ar l..0T7o4«vl 2 7q8a8 . b8 . <c8>b4 . g3 . . . r2g8 . g8 . <d8c4 . > a24a<»7 8«v0r
v 1 347606 q5ar4..
3170 f=" 47705 «v127q8c8.>b8.a8b8.g8.<d3...d8.d8.U8d8.c8.>b8a8.b8
.a24fi«78ev0rvl3«76o6q5ar4 ..
3180 47 7059 v!2 7q8c8. >b8.a8b8.88. <d3. . . > b8 . b8 . b8b8 . a8 . «8a2 r2«4
78*»v0mirll6
3190 h = "@82plvl2o5q7 I : 2«irergrderi{rdonir : I I : 2«rararograretf rnr : I I
: 2drergrdergrderi<r: I
3200 j = "«l 17rl 16<483«i7p3vl5o5tirHttH. <cr8 . >p2v 12g»pl v 10jtarHp3v i lur
g<drdcr4l1r116
3210 k = vl2p2o3erjtrare<rttrerfrarer<rarif»r 1© l l 7 r 116
3220 lr"fea6v7olnLUUla lb4<c4d4>aUle2.^33u5vl3q7r ».nrerg<crc>br
agra^86v7olalglr l«87p3o6v9c!4c>b lit U l r8drer«ar«r<t--fcdc>ar<dc>a
2«83plo5«vl27q7ergarl>52,12
3230 ra_trk(5,a) / •
3240 m~trk(5,b) /*
3250 m trk(5 >c) /*
3260 m~trk(5,d) /»
3270 m_trk(5,e» /•
3280 ro 二 trkt5.n /•
3290 m_trk(5,g) /•
3300 m trk(5,h) /«
3310 m~trk(5,j) /*
3320 m trk(5,h) /*
3330 m_trk(5, い "
3340 m_trk(5,l)/*
3350 m trk{5,Z 2 J /«
3360 パ
3370 ハ
3380 a:.. [d.c.] o4 dI2r 18 ®88 pi q8 r8 v8 >5:1,23
3390 b= M a2 . . eg2. . r*2 . . <S7 3<Sv0o2«7 3pl v8a&v9a4v 10a4v 11 aAv 12a4v 12a&
v 13a4vlla [coda] @7 8dv0«76 Vl3o5q5aq8d89p2vl3o.il16
3 400 c= M arerarearaerarergrdrgrdgrgdrgrvlOarvl 3grdrardgrijdr2rbra
rerarearaera9789v0r076vl3o5q5a8q8989p2vl3o3
3410 d= M arerarearacrarergrdrgrdgrgdrgrvl0grvl3grdrgrdgrgdrg«789
v0r476vl0o3q4p3aplb<p3c>p2b<p3cpldp3ep2dp3egab<cgeg •78®v0®76vl3
o5q5ar4•.r8
3420 e= M 990o4vl2q8a8.b8.<c8>b4.g3...r2g8.a8.b8b4.a2«76v13o5q5ar
4••r 897704 vl2q8a8.b8.<c8>b4•g3•.•r2g8.g8.<d8o4•>a4..®78«v0rvl3#7
6o5q5ar4..r8
3430 fs" 99005 vl2q8c8.>b8.a8b8.28.<d3...d8.d8.d8d8.c8.>b8a8.b8.a
4..«78®v0rvl3«76o5q5ar4..r8
3440 g="«90o5vl2q8o8.>b8.a8b8.«8.<d3...>b8.b8.b8b8.a8.g8a2r4.«7
89v0
15 ^
..r2g8.a8.b8b4.al&a4aS.
vl la<a>i\rr2
..d8.d8.d8d8.c8.>bRa8.
.> b8.b8.b8b8.a8.g8n4•.r
3450 h=" 省 82p2vl2o5q7| : 2drergrdergrdergr :
:2drergrder8rdergr:I
3460 J = **r4«83q7p3vl5o4y53,36arga8 . <cr8 . >p2vl2gaplvl0gar8p3vl4ar
g<drdcr4ry53,28
3470 k= "98*iv5p3o3rer2rare2rare2rarergrargar4 . •
3480 l = '*y53,48«86olv7 | : 2a lg 1 e la4 b4 <c4d4 > : I a lg 1 e l«87p lo6 vl 2q7c4 >
b4a4g4alr8drergargrge-4dc>ar<dc>a2ia<crderly53,28
3490 m trk(6,a) /•
3500 m trk(6,bi /*
3510 m trk(6,c) /*
3520 m trk(6,d) /«
3530 m trk(6,e) /*
3540 m_trk(6,f) /*
3550 m trk(6•g ) /*
3560 tn~trk(6,h) /«
3570 m - trk(6,J) /*
35B0 m trk(6,h» /*
3390 m trk(6,k) /«
3600 m_trk(6 ,1)/«
3610 m trk(6,z2) /«
3620 ハ
3630 /*
3640 a=" [d.c.| o4 4L2r L8 «74 p3 q8 v9 y54,00
3650 b="a2..e«2..rg2..bnllt6>
3660 c = •• 【 coda )^75<»v* 127o3arer<irearaerarergrdrgrdgrtfdrgvI2rgrv
rdrgrdgrgdrgrbrarer»rearaerar8.
3670 d = M r2«'JOplo »vlOq8r4a8. b8 . <c8>b4 .<3.
b8 . <c8> b4 . g3 . . . r2g8.|{8.<dBct975vl3a<a>ar
3680 e : "«90plo5vl0q8r Ic8. >b8.a8b8.g8. <<13 .
b8.a4 . r2.
3690 f3 M «90plo5vl0q8c8.>b8.a8b8.«8.<d3.
32.9784 v0r64
3700 g = "081««vl2 7o3a8.g&gl&g2e4g8.aBer8er8. rlr4a8.gUj{2&gd-ltf8.e8
e-c>ar2.r2.<a8. gkg l&tf2
3710 hs"e4g8.a8er8er8.rlr4a8.2U22&ge4s8.arlrl
3720 J= M ®86v7olcl>blala4bl<c4d»cl>blala8«83o4«vl27q7arer«<crc>b
ragra086v7olcl>blalalb4<c4d4cl>bla2.983o49vl27Arb<crly54,00
3730 m trk(7,a) /«
3740 m_trk(7,b) /*
3750 ra_trk(7,c) /*
3760 m_trk(7,c) /«
3770 mltrk(7,d) /*
3780 m_trk(7,e) /«
3790 m 二 trk(7,f) /*
3800 m_trk(7,g) /*
3810 m trk(7,hl /«
3820 m.trk(7,j) /*
3830 m_trk(7,zz)/*
3840 /*
3850 /»
3860 as M [d.c.] o-l dl2r 18 974 p3 q8 v9 y 53,40 y3,3
3870 b: , a2..eg2..rg2..ba2&l16y2,23a&y2,23a&y2,23a&y2,23a&y2,23a
ky2 ,23a&y2,23a4y2•23a>
3880 c=•(Codal«75«vl27y3,3y2,50arery2,14ay3,2y2,8ry3,3y2,23ey2,
23ary2•23aery2•14ary3,ly2,66ery3,3y2,23grdry2,14gy3 ( 2y2,8ry3,3y2
,23dy2,23gry2,23gdry2,14gvl2ry3,ly2,66gry3,3y2,23vi5grdr
3890 d=*y2,14gy3,2y2,8ry3,3y2,23dy2,23gry2,23gdry2,14gry3,ly2,6
6bry3 • 3y2,23arery2., I 4ay3,2y2,8ry3,3y2,23ey2,23ary2,23aery2,14ary
2,14ry2,I4r
3900 e="y2,Ugy3,2y2,8ry3,3y2,23dy2,23gry2,23gdry2,14gry3,ly2,6
6bry3,3y2,23arery2,14ay3 l 2y2,8ry3 l 3y2,23ey2|23ary2,23aery2 l 14ay2
,14ry2,14ry2,14r
3910 fs"y2,50r4y2,l4ry3,2y2 , 8ry3•3y2•23ry2,23r990p2o4vl0q8ry2,2
3r8.y2,14a8&y3,1 y2,66ab4y3,3y2,23b8<c8>y2 , Ub4>.3 • 2y2 • 8b&y3 • 3y2 • 2
3b4y2,23b84y2,23b
3920 t-^gSkyZ, 14g84y3,ly2,66g84j3,3y2,23gIy2,14 ry3,2y2,8ry3,3y2
,23ry2,23r8y2,23r8.y2, 14284 y3,ly2,66ga&y3.3y2,23a8b8y2,14b4y3,2y
2,8b4y3,3y2,23b4y2,23b84y2,23ba84y2,14a8&y2,1 Ia&y2.Ha4y2,50a44
3930 h= M y2,14a&y3,2y2,8a&y3,3y2,23a&y2,23a8&y2,23a8.72,14a84y3,
1/2,66ab4y3,3y2•23b8<c8>y2,14b4y3,2y2•8biy3,3y2,23b&y2,23b84y2,2
3bg8icy2, 14g84y3, ly2,66
3940 j= *g8ty3,3y2,23g4y2,14 ry3,2y2,8ry3,3y2,23ry2,23r8y2,23r8 . y
2,14g84y3,ly2,66ggacy3,3y 2,2348 <d8y2, 14cty3,2y2,8c&y3,3y2,23c4y2,
23c«75vl3>a<y2,23a>arvlly2,14a<»>y2,14ay2,14ry2,50r4y2,14ry3,2y2
,8ry3,3y2,23ry2,23r8
3950 k = M «90p2o5vl0q8y2,23r8.y2,14c84y3, Iy2,66c>b4y3,3y2,23b8a8y
2,14b&y3•2y2•8b4y3•3y2,23by2•23tf8&y2,23g<d84y2,14d8ky3 ,ly2,SSdBk
y3 • 3y2,23d4y2,14d4jr3,2y2 • 8d4y3,3y2,23dy2,23d84y2,23dd8y2,l 4d8fcy3
,Iy2,66dc4y3•3y2,23c8>b8y2•14a4y3,2y2•8a4y3•3y2,23ay2,23b8
3960 l= M 4y2,23ba84y2,I4a8ty2,14a&y2,14ay2,50r4y2,14ry3,2y2,8ry3
,3y2,23ry2,23r8y2•23r8.
3970 m= ,, «9Op2o5vl0q8y2,14c84y3,ly2,66c> b&y3.3y2,23b8a8y2,14 b4y3
,2y2,8b4y3,3y2,23by2,23g8&y2,23g<d84y2,14d8&y3, ljr2,66d8&y3,3y2,2
3d4
3980 n= M >y2,I4b&y3,2y2,8b&y3,3y2,23by2,23b8&y2,23bb8y2,I4b8&y3,
ly2,66ba4y3,3y2,23a8g8y2,14a&y3,2y2,8a4y3,3y2,23a4y2,23a84y2,23a
8&a32.«78«»v0r64
3990 02 ..9819V 127yS 5,4803 y2,14a&y2, 14a&y2,14ay2,14g&y2,23g4fcy2 ,1
4g&y3,2y2,8g4y3,3y2 ,23gky2 ,23g8&y2,23g8.&y2 r 14g8&y3,ly2,66g8&
4000 p= _.y3,3y2,23g4&y2,14gtcy3,2y2,8g&y3,3y2,23g4y2 r 23ge&y2,2 3e8
.y2,14g4y3,ly2,8g&y3,2y2,8<afcy3,3y2,23aer8y2 f 14ey3,2y2,8ry3,3y2•
23ry2,23r8y2,23r8.y2,14r8y3,ly2,66r8y3,3y2,23r4y2,Ury3,2y2,8ry3
,3y2,23ry2,23r8y2,23r8.
4010 q="y2,14a&y3,ly2,8a&y3,2y2,8ag&y3,3/2,23g4fcy2,14g&y3,2y2,8
«Acy3,3y2 • 23g&y2,23g8ty2 • 23g8.4y2 •14g8&y3 •1 y2,66g8&y3,3y2,23<44>*2
,14g&y3,2y2,8g&y3,3y2,23«&y2,23g(14y2,23d8.
4020 r= "y2 ,14g&y3 •ly2,8tf&y3,2y2,8«e&y3 • 3y2,23*se-c>ay2 ,14ry3,2y2
,8ry3,3y2,23ry2,23r8y2,23r8.y2, l Ir8y3, ly2,66r8y3,3y2,23r4y2,l4ry
3,2y2,8ry3,3y2,23ry2,23r8y2,23r8.
4030 «s-<y2,Uaty2,14aty2,I4ay2,14gfty2,23g44y2,I4g&y3,2y2,8tf4y3
►やつと出ましたね, X 68000 マシン語プログラミングく入 H 編〉。あまりのうれしさにま
だ全部読み終わっていないのに,愛読者カードを出してしまった。 W 木俊一 (21) 來京都
0 h!X LIVE in ’91 79
,3y2,23g&y2,23g8fcy2•23*8• kjZ, 14g8ky3,ly2• 66184 y3,3y2,23f44y2,14g
け 3•2y2•8g&r3,3y2,23g&r2,23ge け 2•23«8•
4040 t="y2,14g*y3,1y2,8g4y3,2y2,8ga4y3,3y2,23«er8y2,14cy3,2y2,8
ry3,3y2,23ry2,23r8y2,23r8.y2,14r8r3,Iy2 1 66r8y3,3y2,23r4y2,14ry3,
2y2,8ry3,3y2 t 23ry2,23r8y2,23r8.
4050 u= M y2,14a*y3,ly2,8«4y3,2y2,8«g*y3,3y2,23g4fcy2,14gty3,2y2,8
gky3 t 3y2,23g&y2•23g8fcy2,23<8.*y2•14g8*y3•ly2,66g84y3,3y2,23g44y2
,Hg*y3,2y2 l 8g4y3,3y2,23gAy2,23ge4y2,23e8.y2,14g*y3,Iy2,8g4y3,2y
2,8ga
4060 w= H y3,3y2,23ry3,ly2,32r32r2,32r32y2 > 32ry3,3y2,32ry2,I4ry3,
2y2,8ry3,3y2,25ry2,34r 3272,34 r32y2,34ry2,34ry3,2y2,35rr73,3y2,14
rry3,Iy2,66rry3,3y2,23ry3,Iy2,32r32y2,32r 3272,32 py3 ,372, 32ry2 f 14
ry 2,34 ry3,ly 2,32 ry 3,3 y2,23rr
4070 x=**y2,16r32y2,16r32y2,15ry2,15ry2,15ry2,14ry2,14ry2,14r«86
olv7|:3
4080 yz H y2 • 23e8&y2 • 23e8&y2 • lAekjZ ,2y2, 8eky3,3jr2,23e4y2,23e84y2,
23e8.4y2,14e8&y3,Iy2.66e8y3,3
4090 z= M y2,23d84y2,23d8&y2 t 14d4y3,2y2,8d4y3,3y2•23d4y2,23d8iy2,
23d8. ky2, 14d8&y3,ly2,66d8y3,3
4100 aa="y2•23c84y2,23c84y2•14c4f3,2y2•8c4y3,3y2,23ciy2, 23084 y2
,23c8.4y2,I4c84y3,Iy2,66c8y3,3
4110 bb=”>y2•23a84y2•23a8y2,14b4y3,2y2•8b4y3•3y2,23b4y2,23b<c4y
2,2308 .y2,14d84y2,I4d&y2,14d:I
4120 cc=..y2 • 23c84y2,23c84y2,14c4y3, 2y2, 8cAy3,3y2,23c4y2,23c8&y2
,23c8.y2,14«83«v127o5ery2,14gy2,I4ar2.y2,23ry2,23ry2,23ry2,23r
4130 m_trk(8,a) /*
4140 m trk(8,b) /*
4150 m trk(8,c) /•
4160 ra trk(8,d) /*
4170 m trk(8,c> ハ
4180 m trk{8,e) /*
4190 ra_trk(8,f) / 拿
4200 m_trk(8,g) /•
4210 m trk(8,h» /«
4220 m_trk(8,J> /*
4230 m trk(8,k) /«
4240 m_trk(8,l) /*
•1250 in_t rk ( 8 , ro) / *
4260 mitrk(8,n) /*
4270 m 一 trk(8.o) /•
4280 m_trk(8,p) /*
4290 m_trk(8,q) /«
4300 m_trk(8,r) /»
4310 m こ trk(8,a) /«
4320 m_trk(8,t) /«
4330 m_trk(8,u) /•
4 3-10 rn_trk( 8 , w) / *
4350 m_trk( 8 ,x) /*
4360 m_trk( 8 ,y) /*
4370 m_trk( 8 ,y) /«
4380 m trk( 8 ,aa) /*
4390 m_trk( 8 ,bb) /«
•1400 m_trk ( 8 , y) /*
■1410 m_trk ( 8 , 2 } /*
4420 m_trk( 8 ,cc) /«
■14 30 m trk( 8 .zz) /*
4440/7
4450 ft
4*160 m_play()
li スト 2 スブーンおばさん
日本音楽著作権協会(出)許諾第9072264 -00 1号
10
20
30
40 * RINGONOHORI
se
60
70
80
99
100 INIT:DBFSTR A-Z:DEFINT X:GOSUB 1400
lie DIM A(16) > B(16) ( C(16),D(16),B(16),P(16),G(16)
120 TBMPO0
130
149 B
150 C
160 D
170 E
180 F
190 G
200 A
210 B
220 C
230 D
240 B
250 F
260 G
270 A
280 B
290 C
300 D
310 E
320 F
330 G
340 A
350 B
360 C
370 D
380 E
390 F
400 G
410 A
420 B
430 C
•HO D
450 E
460 F
470 G
480 A
490 B
500 C
510 0
520 E
530 F
540 G
550 A
560 B
570 C
580 D
590 E
600 F
610 G
620 A
630 B
640 C
650 D
660 E
670 F
680 G
690 A
700 B
710 C
720 D
730 E
740 F
750 G
760 A
-06V12Q7L8I1
=-05V12Q7L8Il
=”02V13Q7L8I1
= M 04V11Q7L8I1
= M 04V11Q7L8I1
="04V12Q7L8I1
: ”05V6I3Q3L8
="C<B-AGFEDC< B-AGPECDE GFBFGFKF
="R1 R1 R1
s"C>C<G>C<C>C<G>C <OC<OC<CCDK F4C4F4D-4
="R1 R1 R1
=-Rl R1 R1
="R1 R1 R1
**"R1 R1 R1
="B-4.ARAAA AFFDD<B-B-G> <GA>DCRCDE
z**Rl R1 R1
s"D4G-4A4D4 G 4040404 C4G4CCDB
s M Rl R1 R1
=~R1 R1 HI
s_Rl R1 R1
="V12R4R4.CCC R1 R4R4.CCC
="CFEFGFEF B-4.AR>DDD
s"Rl R1
= **F4C4F4D-4 D4G-4A4D4
="R1 R1
= M R1 R1
="R1 R1
: "R1 R4R4.CCCV6
="D く AAFFDFA E4EFB2
="R1 C4<ARR2
s"G4D4G4D4 C4CFRCC4
="R1 Rl
="R1 R1
= ..R1 Rl
=~<A4>C4G4.F8 EFC<A>C<AB->C C<B-B-AAGB->D
= w Rl Rl D 1
=-F4C4F4C4 F4F4G-4G-4 C4D4G4D4
: "Rl Rl Rl
= M R1 Rl Rl
= W R1 Rl R1
="I202VlIQ8F2F2 F2F#2 G2G2
r M G2.R4 <B-4>D4A4.08 C-CD<B->D<B->CD
s M Rl Rl Rl
= ,, G4D4GFED G 4040404 G4D4G4D4
= M R\ Rl Rl
s"Rl Rl Rl
= rt Rl Rl Rl
="G2&G<B - >DG B-2A2 G-ZG2
= M F.DDCCDEC A2R4C4 >C4 . <B-B-A40-
s M Rl Rl Rl
= *'04040404 F4C4F4FG A4E-4D1G-4
: ”R1 Rl Rl
s"Rl Rl Rl
s*. Rl R1 R1
s"C2C2 V6F2.FG A2B-2
= H ACG-CU-2 DHRUEKDH DERDK2& E2RCDK
="R1 Rl FGRKG2 & G2R2
s M 040404 GA B->CR<B->CR<B->C <B->CR<B - >C2 C<B-GKCCDE
r"Rl Rt Rl Rl
: "Rl Rl Rl Rl
=”Rl Rl Rl Rl
= h A 2G2 DERDERDE Rl C<B-GECCDE
= M GFEFGFEF B-4.ARAAA AFFDD く B-B-G
820 G(9)=
830 A(
840 B(
850 C(
860 D(
870 E(
880 F(
890 G(
900 A(
910 B(
920 C(
930 D(
940 B(
950 F(
960 G(
970 A(
980 B(
990 C(
000 D
010 E
020 F
030 G
040 A
050 B
060 C
070 D
080 E
090 F
100 G
110 A
120 B
130 C
140 D
150 E
160 F
170 G
180 A
190 D
200 C
210 D
220 E
230 F
240 G
250 A
260 B
270 C
280 D
290 E
300 F
310 G
770 B(9)="R1 Rl Rl
780 C(9)= M F4C4F4D-4 D4G-4A4D4 04040404
790 D(9)= M R1 Rl Rl
800 E(9) = **R1 Rl Rl
810 F(9)= rt Rl Rl Rl
I3Q30SV12R1 R4R4.CCC R1V6
••GA>DCRCDB GFEFGFBF B-4 .AR>DDD D く AAFFDFA
M R1 Rl Rl Rl
"C4G4CCDE F4C4F4D-4 D4G-4A4D4 G 4040404
"Rl Rl Rl Rl
"Rl Rl Rl Rl
'•Rl Rl Rl Rl
M R4R4.CCC Rl Rl Rl
M B4EFR2 >D4F4G4FD CF4A4A2
">C4<ARR2 Rl Rl
-C4CFRFGA B-4F4B-4B-4 F4C4F4GA
"Rl Rl Rl
M R1 Rl Rl
•• R1 R 1 Rl
"I102Q8R1 F2F4GA C2C2
M D4F4G4FG <B4>Vt3FV10<B-&B-2 R<AAAAA4>>>C164D16
..Rl D4RD4D2 く RCCCCC4R
M B-4F4B-4F4 >A4RV13G4G2V11 RFFFEE4R
r M D2D-2 <G4.G4AB-G >CU
=”R1 Rl Rl
=”R1 A4AG4G2 Rl<<
• M R1 Rl Rl
= '*GFBDC<AEC R<<B-B-B-B-B-4>>G16&A16 B-AGFD-C く B-F
="R1 Rl Rl
= M R1 RGGGFP4R Rl
=”C1 <B-14 B-l>>
= M R1 Rl Rl
="R1 Rl Rl
_M R1 R1 Rl
="RDD4DDR>D D4DDR2V12<
= ,f RFF4FFR>F F4FFR2<
="RB-B-4B-B-R>B - B-4B-B-R2<<
= ..R く CC4CCRC C4CCR<CDE>>
="Rl Rl
= M R1 Rl
Rl
= ..E4EFRCDE
= M V13C4<ARR2V10
= M R l
= M V13C4CFRV4CDEV10
s-Rl
: "Rl
= "R1
: "04E4EFK>DDD D<AAFFDFA E4EFR<GA>C F4R<<<A16A16A4H4
= M 04V12C4ARR2 Rl C4ARK2 H-IRC16C16C4R4
= M Rl Rl Rl R4RF16F16F4R4
= M Rl Rl Rl R4R<<F16F16F4R4
•*R1 Rl Rl Rl
•Rl Rl Rl R4KA16A16A4R4
"Rl Rl K1 Rl
320 PLAY A(0H >": "♦B(0)* M : M +C(O )* H : ">0(0)* H : M *E(0)+ M : "*K(0)+ M :**♦
G(0)
330 RESTORE
340 READ X:IF X=999 THEN END
350 PLAY A ( X ) ♦ •* : "♦B( X) M +C(X) ♦** : "♦D( X) X) ♦*': M + F(X) ♦*': "♦
G(X)
360 GOTO 1340
370 DATA 1,2,3,4,5,6,7,8,9,10,11,12
380 DATA 13,14,5,6,7,8,9,10,15,9,10,16
390 DATA 999
,100 MEM$(&HB190,36)=HBXCHR*rFA 00 31 4C 33 5125 2F 2F 00 9C 9
6 5D 8F 04 09 04 87 00 01 03 00 151216 A5 80 80 80 80 00 DC 80
00 02 80")'PIANO
1410 MEM$(4HB1B4 t 36)=HEXCHR$( M F810 3F 36 31 513123 2D 00 52 5
D 50 8E 9F 88 8A 8014 OC 01 01 2A 2A 03 0A 81818182 F4 C8 D0
00 02 80">'CELLO
1420 MHM$(&HB1D8,36)=HEXCHR$C , E4 40 OC 0C 4C 3C 37 00 37 001A 1
31214 95 9? 83 8D 0912 0012 0C FB 04 FF 00 00 00 80 00 8B EO
40 02 80")'BIRD
1430 RETURN
80 Oh! X 1991.2.
HE SOFTOUCH
_
SOFTWARE INFORMATION
1111 It
iniin
今月もいろいろな情報が飛び込んできまし
た0いやあ,この時期はいいですねえ,ネ
夕に困らなくって。でも X 68000 を中心に
動いているメーカーさんも増えてきたし,
こういう状態がずっと続くといいなあ0
ノスタルジア
噂 ばかりが先行していたが,ようやく 姿を 現した ぞ。いま
までのァ ド ベンチャー とはひと味も ふた味 も 違う作りだ。
1?のソフト化
さあ,どこもかしこも年末進行。アタマ
はみんなナチュラルハイ! X 68000 に向
かって笑いかけてる自分がコワイぞ,へへ。
まずは,タケルのノスタルジア。豪華客
船で突如発生した乗っ取り事件,偶然乗り
合わせた主人公は事件解決に向けて行動を
開始する……,てなアドベンチヤー。でも,
従来のそれとはちと違う。いわゆる“早解
き”ふうではなく,会話を楽しみ“行動す
る”といったゲーム。主人公の感情や関心
がそのままグラフィックで表されるし,時
限爆弾解体シーンでも,ネジの回る様子を
表示してスリル感をアップしている。こう
いった細かな感情の動きを絵にすることで,
プレイヤーもどんどん引き込まれ,思わず
ニヤリってなわけです。感覚的には知的対
話型アクションてカンジかな。
次は, システム サ コムのチャイム。中学
時代同級生だった3人の女の子が別々の高
校へ進み,さまざまな人に出会い成長し,
それぞれに道を歩んでいく様子を描いたア
ドベンチャー。登場人物はかなり多〈,な
かにはサ コムの 人をパロったものも。
そのほか電波新聞社ではエイリアンシン
ドローム, SPS ではメルヘンメイズ,シス
テムソフトではボンバーマン,ホビージヤ
パンではブラックレインボウとビーストロ
ードをそれ.ぞれ開発中とのこと。それじゃ。
□ OCTOR 2. X 使用上の注意
| 月 号の付録ディスクに収録されているウイ
ルス検出用 プログラム 「 D 0 CT 0 R 2. X 」 は, フロ
ッビー ディスクに記録された IPL (イ ニシャ
ル •プログラム •口ー ダー) という 起動時に最
初に読み込まれるプログラムをチェックしてい
ます。通常、 IPL は Human 68 k の純正のもの
がその まま使われることが多いのですが,市販
のゲーム ソフトには オリジナルの IPL が使用
される 場合 も あります。
そこで、 D 0 CT 0 R 2. X を組み込んでいる場合,
オリジナル IPL のゲームディスクを起動しよ
うとすると, D 0 CT 0 R 2. X は.次のようなメッセ
—ジを 出すよう にしています。
1 ) これは Hudson 純正の I Pl -ではないが大丈夫でし
ょう。シフトキーを押すと続行します。
また,一部のソフトで,オリジナル IPL を
使用したものである にも かかわ らず次のような
メ ッセー ジが出ることがあります。
2) これは未知のウイルスに冒されているかもしれ
ません 0 注射をしますので,ドライブ1に Human Ver .
1.00 ( 相当品)を入れて,リターンキーを押してく
ださい。
これは,本来 Human 純正のシステムが書き換
えられている場合に出す警告ですが , DOCTOR
2. X の不備で,純正 以外の IPL に対してもチ
ェック項目が--致してしまったためです。もと
もと,書き込み 不可の ディスクではウイルスめ
侵入はないはずですから市販のソフトの場合は
まず 安全です。メッセージを見て驚かれるかも
しれませんが,無理に治療しようとはしないで
ください。現在各 ソフト ハウスでは十分なチェ
ックを行.ってソフトを出荷しているはずです。
1) の場合はシフトキーを押せばそのまま起動
しますが, 2) の場合には OPT .1 キーを押しな
がらリセットして起動してく ださい。
もちろん,通常お使いのシステムディスクで
1),2) のメ ッ セージが出たときは注意が必要で
す。 その場合には編集部までご連絡ください。
また,市販ソフトで I )または 2) のメッセージ
が出た場合には, プロ テク ト シールを剝がさな
いように保存しましょう(最初から切り込みが
ないディスクは安全)。万がーウイルスに感染
するとオリジナル IPL が壊れてゲームは起動
できなくなります。 (編集部)
THE SOFTOUCH 81
リンクマスター II
シナリオ丨でリングナイトに昇格した主人公
だったが,密命を帯び,ゴトランタ大陸のムル
ソン大公国を訪れる。フィリアス•ノギスに迫
る戦争の予感。激動する事態を前に,君は使命
をまっとうできるか……?
すいません。これ,ほとんどパッケージのコ
ピーそのままです。しかしまあ,もともとシナ
リオが命のリング マスターで すから,やりもし
ないうちに窨いてしまうのもナニかなぁと。
というわけで,実際に遊んでのレポートはま
た後日にするとして,ここでは概要だけ紹介す
ることにしましよう。
リン グマス ター II は テーブル トークの老舗ホ
ビー ジャパンが, そのノウハウを生かして作り
上げた本格派 RPG です。スキル, メンタル ボイ
ント, さまざまな攻擊修正など,特に ルール 面
がしっかりしているのが特徴。シナリオも綿密
な世界観に基づいて書かれ,人口無脳を搭載し
た登場人物との会話によってストーリーを進め
ていくことができます。
X 68000 に関してはシナリオ,グラフィック
などによりきめ細かなチェックを入れ,より完
成度を高めてあるとのことですから, RPG ファ
ンにはたまらない I 本となることでしよう。
(ですます浦)
X 68000 用 5" 2 HD 版3枚組8, 800円(税別)
ホビージャパン 003 (3354)9341
Magical Shot
M . N . M Software のビリヤードゲーム 「Magic
alShot 」 もいよいよ発売を迎えたようだ。
ウリはなんといっても本格的な 3 D 処理,ポ
リゴン処理を使ったビリヤードゲームは,たぶ
ん日本では初めてじゃないかな。いろんな角度
から台を眺められるというのは,ビリヤードで
は重要なだけに嬉しい。マウ
スで台をスルスルと動かすの
は,なかなか気分がいいぞ。
さらに打ったあとにはインス
タントリプレイも見られる。
ナイスシヨットの快感を何度
でも味わえるぞ。
ゲームは オーソドックスなナインポール。対
戦相手は,ァダルトな雰囲気の紳士淑女が8人
揃っている。ビリヤードがお好きな人は必携の
I 本だぞ。 (ファンキー浦)
X 68000 用 5 " 2 HD 版6, 800円(税込)
ブラザーエ業 ( TAKERU ) ©052(824)2493
IkV : g
ザークレジェンドスペシャル
ザークレジェンドスペシャルは,新進ソフ
トハウス,マキシマのアクションゲームだ。高
貴な血筋を引く主人公アンドレアが,大魔王ザ
—クを倒すために立ち上がるというもの。ツボ
を押さえたストーリーですな。
ゲームは縦型のスクロール画面。現れる敵を
剣や銃で倒し,入り組んだ地形をジャンプで克
服してどんどん進んでゆくのだ。感じとしては,
イース in などよりは,むしろスーパーマリオと
かビクターの 「シャツ タードフュ
ーチャー」に近い。みんな知らな
いか。
しかしマニュアルには 「 PC -98
〇丨でのソフトウェアスプライト」
をウリにしているけど, X 68000
ではこれくらいの動きは並って感
じがする。音楽も中村泰士氏とい
うことだけど,ちょっとゲームを
意識しすぎてかえって古いタイプのゲームミュ
ージックだという気がする。
アクションゲームとして見ればアニメー ショ
ンはきっちりしてるし,敵の配置なども考えて
あるけど,そこはそれ,もはやゲーセンの移植
を見ても驚かない X 68000 ユーザーが相手だけ
に厳しいかな。 (ファンキー浦)
X 68000 用 5"2 HD 版4枚組8,800円(税別)
マキシマ 006(56 丨 )2215
V レ""/""》/》ン"/""""""/"/""ン>"^^^^^^
M . N.M Software のパズルゲーム「スライス」
がそろそろ登場の見込み。こちらには完成版が
届いたので紹介しちゃおうかな。
まずルール。 3個同じ種類のブロックを並べ
て消すという,コラムスと同じものだ。ううん,
シンブルイズベスト。面白いのはブロックが着
地してからで,ブロックを左右に倒すことがで
きる。当然平坦なところばかりじゃないから,
ひっくりかえったり,ブロックが分割したりす
る。さらにそれから移動させることもできるの
だ。着地してからその先がどうなるか,なかな
か予測がつかないけど,それだけに自分の思い
どおりにいったり,思いがけず大量の連鎖反応
を起こしてしまうと嬉しさに体が溶けてしまう。
ああ,もうダメって感じ。
BGM はあの古代祐三氏。今回はスクラッチ技
を使ったファンキーな BGM で楽しませてくれる
ぞ。“ I ,2,(ゴシュゴシュ)ヘイ!"って感
じで。く一っ,イカすぜ〇今日からみんなもス
ライスで,“丨,2,(ゴシュゴシュ)ヘイ!”
だ。ヘイ! (ファンキー浦)
X 68000 用 5"2 HD 版6,800円(税込)
ブラザー エ業 ( TAKERU ) 0052(824)2493
大航海時代
光栄の大航海時代の X 68000 版が完成,発売
された。このゲーム,船隊を率いて7つの海を
渡り,国王に認められるほどの大人物になるの
が目的というものなんだ。とにかく,みんなの
評判になればなんでもヨシってのがいい。地道
に貿易をして大商人になるもよし,海賊になっ
て敵国の艦隊をドカドカやっつけるもよし,港
に投資をして事業家になるもよし,自分の好き
なようにプレイできるところが特徴なんだな。
X 68000 版はマウス専用オペレーション。昔
よりだいぶ考えられていて,ウィンドウも好き
な場所に動かせる。なかなか快適にプレイする
ことができるぞ。個人的には数字ぐらいキーボ
ードで入れさせてほしかったけど。
Xlturbo 版の弱点だったスピードも速くなっ
たし,音楽もグレードアップ。しゃベリも入ったし,グラフィックもなん
となく高級感が出ていて,ああ, X 68000 ユーザーで良かったなあと素
直に感じさせてくれる出来なのだ。
(ファンキー浦)
X & 8000用 5"2 HD 版2枚組9,800円(税別)
光栄 0045(561)6861
THE SOFTOUCH
82 Oh! X 1991.2.
SOFTWARE INFORMATION
スペースローグ
オリジン社の本格的 SFRPGr スペースローグ j
が発売になった。移植したのはウェーブトレイ
ン,「宝島」でお馴染みの JICC 出版局のブランド
だ。
主人公は新米パイロット。ワヶあって母船を
失い,小型偵察艇と我が身ひとつで身を立てな
ければならない。さて,どうするか。商人とし
て名声を得るもよし,宇宙海賊として名を成す
もよし,身のふり方は君に任せられている。あ
れ? 大航海時代みたいだな c やがて宇宙を旅
するうちに自分を取り巻くストーリーが見えて
くるという次第。
ゲームはポリゴン処理による 3 D フライトシ
ミュレータと,トップビュー型の RPG でなって
いる。ちょうど「スタークルーザー」の惑星部
分を 2 D にしたような感じだ。
まだ現物は届いてないけれど,ウルティマを
生んだ RPG の大御所オリジンの作品だけに.ど
んなイベントと仕掛けが待っているのかが楽し
みだ。 (真面目な浦)
X 68000 用 5"2 HD 版9,800円(税別)
ウェーブトレイン 003(3288)1426
ブルトン•レイシナリオエティタ
「シナリオエディタも出してね」とレビュー
に害いたのはこの私だったが,さっそくシステ
ムソフトからシナリオエディタが届いてしまい
ました。見事な攻擎だ。
このシナリオエディタでは,登場人物やマッ
プのパターンは「ブルトン•レイ j か「同シナ
リオ集 j に収められているものを使う。ユーザー
は マップ, 魔法,アイテム,メッセージ,それ
から敵と登場人物の設定などをすればよい。何
をしたらどんな処理をしてというフェイズ設定
を行えば出来上がりという仕組みだ。シナリオ
におかしな点がないかどうかはプログラムがき
ちんとチェックしてくれる。 RPG のシナリオエ
ディタとしてはかなり手軽で親切な部類に入る
だろう。
単に ブル トン.レイのシナりオバリエーシヨ
ンを增やすというだけでなく,ゲーム,特に R
PG を作ろう! などと思ってる人は,シナリ
才作成の勉強のつもりでこういった市販のエデ
ィタでシナリオを練ってみてはいかがだろうか。
I 本のストーリーを仕上げるには,いかに細か
な配慮が必要かよくわかるし,きちんと動いた
ときの喜びも味わえるぞ。ちなみに,プレイす
るのには 「ブル トン•レイ」が必要なのでお忘
れのないよう。 (真面目な浦)
X 68000 用 5"2 HD 版2枚組4,800円(税別)
システムソフト 00^2(752) 5278
レインフオーサー
ザイン • ソフトの今度の新作は「レ インフォ
—サ ー 」。 謎のテロリスト組織 ニュー トを倒す
ために2人の特殊工作隊員が潜入する, という
設定のアクションゲームだ。
ビルのオフ ィスに 始まる ステージは,ストー
リーに合わせて変わってゆく。 8 方向にスクロ
ールする マップ上で5種類のウエボンを使いこ
なし, 相手の 死角をぬって敵を倒していくのだ。
セガの 「クラックダウン j などをほうふつとさ
せる。
私が ちょっと 試した限りでは,なかなか 真面
目によく作りこまれて いた。 各 兵器の 特徴 づけ
もよく出ているし,操作性や動きに不満点はな
い。
しかし私は悲しい ぞ。 「バルーサ の復謇 _] の デ
モで見せたザイン•ソフトのあのセンス,あれ
は どこへ行ってしまったのだ。これはこれでい
いけど,私は ザインというと,こう,サルがほっ
ベた引っ張っちゃうような,あんなのがいいな
あ。いいなったら。(真面目 & ファンキー浦)
X 68000 用 5 ” 2 HD 版 4 枚組 8, 800円(税別)
ザイン.ソフト 0078(242)2855
ァト5ック•ロボキッド
UPL のアー ケード ゲーム 「アトミック_ ロボ
キッド」が,システムサコムにより移植された。
いわゆる,パワーアップシューティング。マッ
プの中をひたすら進み続け,5種類ある武器を
効率よく使い分けながら,現れてくる敵をバッ
タバッタと薙ぎ倒すというもの。ところどころ
に分岐点があり,それぞれ難易度が違ってくる。
全部で20面あり,ある一定面数ごとに,画面
を余裕でぶちかまし,はみ出るほどのボスキヤ
ラとの対決,自櫬と似たようなロポットとの対
決シーンもあり,プレイヤーを飽きさせない。
キャラクターもメカニカルでかわいい。そし
て,コミカルな自機キャラクターの正面顔が
とっても“ぶりてぃ一”である。マップのある
ところには,残機数と引き替えにアイテムを
謀ってくれるゴジラ君がいる。僕は最初出会っ
たとき,敵と間違えて犁ち殺してしまったが,
こいつの泣いてる様子が実はかわいかったりす
る。こんなゲームに関係ないところでも楽しま
せてくれる。フアンには期待の丨作ですね。(純)
X 68000 用 5 " 2 HD 版2枚組 8, 800円(税別)
システムサコム 003 (3635) 7609
ファランクス
「ジェノサイド」「ラグーン」とたて続けにヒ
ット作を出して, X 68000 ユーザーみんなの期
待を一身に背負ってしまったズーム。さて,そ
のズームの 第3弾は, シューティングに決定。
タイトルは「ファランクス j 。 基本的には横ス
クロール タイプのシューティングだ。
現段階ではオープニングが完成し,ゲームの
中身に 取り掛かっているところ,とのこと。こ
のオープニングでは,拡大,縮小,回転と X 68
000の 機能を フルに 使って くれてい る。まだゲ
ーム自 体は 見て いないの でな ん ともいえないけ
ど,このぶんでは期待していてもよさそう。
発売は春ぐらいになるらしいから,来月あた
りにはゲーム 画面を お届けできるんじゃないか
な。 がんばれ, ズーム。 (香)
X 68000 用 5〃2 HD 版 価格 未定
ズーム 001 1(613)0191
THE S 0 FT 0 UCH
83
HE SOFTOUCH
甲子園優勝までの長い道程
Kageyama Hiroaki
影山裕昭
ここにきて野球ゲームがたくさん発売されているが,この
ゲームはちと毛色が違う。プロ野球でもなければ,アクシ
ヨンゲームでもない。アートデインクの十八番,箱庭的高
校野球シミュレーシヨンゲームなのである0
•栄冠は君に
緬球全8故
高校野球=坊主頭。それが僕のィメージ。
実は痛校野球を見ること力 f ほとんどない人
間なのだ。それなのに「今日の〇 X 対△口
の試合はどっちが勝ったの?」とうんざり
するほど#ねられる。高校野球に興味のな
い人間はめずらしいかのようだ。でも,僕
みたいなのに限って,母校が出場したりす
ると,はりきって甲子園まで応援しに行っ
ちゃうんだよな。
まずは下準備 ♦♦♦,♦♦,•,♦♦舞
ゲームは全国高校野球大会地区予選に向
けての練習から,地区予選,甲子園での全
国大会までをシミュレートしている0最大
のウリは全国3990校もの実在の高校のデー
夕をディスクに収めたことだ。その中から
好きな高校を選び,チームの監督として甲
子園大会優勝を目指すのだ。甲子園で優勝
したときには,真に3990校の頂点に立った
ということになる。
このゲームでは (初めての試みというわ
けではないが)自分は選手を直接動かすの
でなく,監督として指示を出すのである。
監 ff の仕事はたくさんある。しかし,画面
に姿を見せることはない。監督はディスプ
レイの前にいる自分自身なのだ0
さて,まずは ゲームに 先立って ユーザー
ズ ディスクを最初に作る。生ディスクを自
分で1枚用意しよう。 ユーザーズ ディスク
X 68000用 5"2 HD 3 枚組9,500円(税別)
アートデインク 00478(79)9392
は, ユーティリティディスク(製品に含ま
れている)をドライブ0に入れて立ち上げ
ると作れるようになっている。とっても簡
単。画面の指示に従ってドライブ1に生デ
ィスクを入れて,マウスをクリックして侍
つこと2分半。次に全国49地区から出場地
区を選択する。甲子園にいちばん近いのは
鳥取だろうか。ここは23校で地区予選を争
うので。逆にいちばんの激戦区が神奈川。
倍率202倍はかなりきつそうだ。
地区の選択がすむと,その地区から出場
する高校名.が表示される。高校名をクリッ
クすると,その高校の野球部の部員数,総
合評価が表示される。それを参考にして監
督になる高校を選択する。高校を決めたら
6種類のユニフォームから好きなのをひと
つを選んでおしまい。このあと,さらに1,
2分侍たされて,やっと出来上がりだ。全
部で5分はかかるはずなので,コーヒーで
も脇に準備して作業を始めるのがいい。ち
なみに ユーザーズ ディスタはゲームの途中
経過を1力所しかセーブできないから,ゲ
ームを始める前に何枚も作っておくほう力す
無雛:だろう。一度ユーザーズディスクを
作ってしまえば, Human 68 k の DISKCOP
Y で何校でも複製できる。
監當つこ; t 麥 ♦♦♦♦♦♦♦♦♦♦♦♦令
PL 学園とか天理とか甲子園でおなじみ
の強豪高校の監督もいいだろうけど,やっ
ぱり母校に硬式野球部があるのなら,甲子
園で優勝させてやりたいものだ。卒業式で
しか歌った覚えのない校歌だけど,甲子園
で母校の校歌を流したい。いまになって愛
校心に目覚めてしまった僕は,母校を選択
した。僕の母校は埼玉県の大宮®高校。こ
のゲームでは“大宮西山”となっているけ
ど,気に入らなければ校名を変更すること
だってできる。総合評価は C だったがシヨ
ックはまったくない。事実,うちの野球部
は弱かったのだ。こいつらを鍛えて甲子園
を戦い抜けるような強靱な精神力と肉体を
作ってい X のだ。監督として十分やりがい
のある仕事じやないか。
地区大会までの40日間は練習モードだ。
この間に選手の実力を把握して,主将,守
備位置,レギュラーを決定する。操作はす
ベてマウスで行い, メニューには,
練習,選手情報,決定変更,システム
がある。監督たるもの,まず選手の長所,
短所を知らな〈てはならない。マウスカー
ツルを “選手情報”に持っていき,クリッ
クする。すると,学年別,正選手,内野,
外野……(ほかにもいろいろ)といったメ
ニューが出る。内野をクリックすれば,内
野手の情報がずらずらっと表示されるわけ
だ。名前や打率はもちろん,ヒット,2塁
打など各安打別の本数も 一13瞭然だ。さら
に選手1人ひとりが体力,打力,走力,守
備力といったパラメータを持っていて,こ
れらから選手の実力を判断する。それがで
きて初めて効率のいい練習メニューを組み
立てることができる。
全員の情報をざっと見回すと,さすが3
年生は実力がありそうだが,1年生はまだ
まだ貧弱なのが多い。そういったことを念
頭において“練習”をクリックするとポッ
プアップ メニューが またまた表示される。
守備位置別だとか個人別だと力、,細かい選
択ができるようになっている。練習内容は
筋力強化,足腰強化といった基礎体力を赉
うものから,守備練習,打擊練習,投球練
習,技術講習といった技術的な面を磨くも
のがある。40日も期間があるんだから,最
ユニフォームの選択,ポーズが決まってる
84 Oh! X 1991.2.
初から個人別に細かく練習内容を指示して
いては気が遠くなってしまうし,とりあえ
ず1年生は足腰強化,2年生は筋力強化,
3年生は守備練習と,学年別におおまかに
指示していくことにする。
全員に練習内容を指示すると画面には校
庭が映し出され,選手たちの練習風景を観
察することになる。選手はすごく細かく描
き込まれている。しかも,画面写真ではよ
くわからないかもしれないが, アニメ ーシ
ヨンしているのだ。素振りをしていたり,
投球練習していたり,タイヤを引きずって
いたり,ネット越しに女生徒が手を振って
いたりもする。画面モードは 768 X 512 の高
精細モードで16色しかないのだが,選手の
アニメパターン も自然で無理がなく校庭の
グラフ イ ックもよく描けている。
練習を重ねてい〈と,選手のパラメータ
は少しずつ上昇していく。地区予選30日前
になったころに,選手情報をもとに個人別
に弱点部分を補強していくような練習をさ
せることにした。選手によっては守備位置
を変更したほうがいい場合もあるだろう。
それも“決定変更”で簡単に行うことがで
きる。しかし,副産物としてコンバートさ
れた選手の“自信”のパラメータが下がっ
てしまう。いいかげんな気持でコンバート
するとあとで泣くはめになる。
まずは練習試合 ♦♦♦♦♦♦♦♦♦♦♦
要領がわかってきた予選20日前になって,
花咲徳英高校から練習試合の申し込みがき
た。どうしようか? 選手の実力が計れる
し,練習試合はこちらから申し込むことが
できないことを考えれば,試合をしてみた
ほうがいいようだ。そうなるとまずベンチ
に入る15人を選ばなくてはいけない。選手
データを参考にして,見込みのあるやつを
選んではカチカチと左クリックする。15人
選んだら先発選手を決めて打順を組む。
これで終わりではない。1 塁, 3 塁の コ
ーチャーズボックスに立たせる選手も決め
るのだ。コーチの走塁技術がランナーの進
塁を左右するらしいから,いい加減な気持ち
明けても暮れても練習の毎日
じや選べない。ここまでやってようやく試
合開始となる。初めての体験なだけに選手
の選択にだいぶ手間取ってしまった。監督
の苦労を垣間見た気がする。
試合はリアルタイムで進められていく。
両軍 ベンチ から選手が ホームベース 前に整
列して挨拶から始まる。野手が守備に散る
とピッチャーは投球練習を始める。プレー
中は相手バッターがフライを上げれば,勝
手に動いて捕ってくれる。盗塁だって勝手
にやるし,バントだってそうだ。選手は指
示がなければ自分の判断で試合を進めてい
くので,とりあえずほっといても試合は終
了するのだ。力 ? ,ここいちばんというとき
は監督が腰を上げねばなるまい〇インプレ
一中でなければ,マウスの左クリックでい
つでもタイムをかけることができる。そし
て“打て”と力 1 “牽制を多くしろ”と指示
を与えていくのだ。
やっていると気になる部分はちよこちよ
ことあるが,全伸:的にはよくできているゲー
ムだ〇選手の動くスピードと打球の速さもバ
ランスがとれている。まるで本物の高校野
球を ヘリコプ ターから観戦しているような
気分に浸れるほどだ。選手は凡フライを落
とす マヌケ ぶりだし,ピッチヤーを マ ウン
ドに送れば,ぼこぼこに連打を浴びる。き
ちんとパラメータどおりの働きぶりをする。
しかし,豆粒のような選手がひとつの白球
を追いかけてプレイしている姿は“馬鹿な
奴ほどかわいい”の言葉どおり愛着が湧い
て〈るのだ。
自分が選手を動かすことができないので,
ときにはもどかしい思いをすることもある。
実際の監督もさぞかしもどかしい思いをし
ているんだろう。しかし, 9回製にサヨナ
ラホームランを打ってくれたときなんかは
デイスプレイの前でガッツポーズをしたり
したっけ。ああ,恥ずかしい。
練習試合が終わったら選手のデータを見
てみる。 「エラーを した選手は自信が下が
っているなあ,もうちょっと守備を練習さ
せなきや。あいつは長打力があるからさら
に磨きをかけるか」,などと練習メニュー
ついに準決勝,気合いも十分だ
の組み立てがしやすくなるのだ。練習期間
はこのようにして過ごしていく。終わって
みればあっという間の40日だ。
我が母校は I 霞 ♦♦♦♦♦♦♦♦♦令
地区予選はトーナメント形式で競われ,
本物の高校野球とまったく同じ ^ 試合の進
め方は練習試合となんら変わりない。自分
のチーム以外の試合は結果だけがわかるよ
うになっている。全部の試合を眺めなけれ
ばいけないわけではない。|
我が母校は地区予選で優勝し,っいにあ
こがれの甲子園初出場を果たした,。,甲:チ園
では入場行進.と選手宣誓が(ちゃんとブニ
メーシヨンで)行われ,1冋戦の組み合わせ
が発表される。我力 ? 母校は準決勝で敗れたも
のの,初出場でベスト4に入ることができ
た。真紅の大優勝旗を手にすることはでき
なかったが,悔いはない。それが高校野球と
いうものなのだ。優勝すると「全国制®の
軌跡」力す見れるというからがんばってきた
のに残念だ。その代わり,僕の脳裘に,はこ
れまでの出来事が走馬灯のよラに浮かんで
は消えていく。
後輩が果たせなかった夢をいっ か 実現 さ
せることを誓い,僕の夏は終わった。 ■
注文があります
本文で窨かなかったことで,あったらいいな
と思ったことをいくつか書き連ねる。データ置
的に無理だろうけど,校歌が本物だったら 最高。
試合中の指示では打者に右狙い,左狙いをさせ
れるようにしてほしい。甲子園で負けたら砂を
かき集めるシーンもほしい。選手の不祥事で出
場辞退とかあったら,よりリアルだった?あ
と,タッチアップがどうしてもできないのだが
. 。 ないのは絶対におかしい。もし,なんら
かの操作でできるのであれば マニュアルに 明記
すべきだ。
文句をつけたあとでいうのもなんだが,この
ゲームは このままでも十分に楽しめた。 買って
損はない。
総合評価 〇_ 5_10
シミュレート ★★★★★★★★女
グラフィック ★★★★★★★女
雰囲気 ★★★★★★★★女
感情移入度 ★★★★★★★★★女
THE SOFTOUCH
85
HE SOFTOUCH
KLAX はビッグ X の夢を見る
またまたパズル ゲームの 登場、 このゲームはアーケード か
らの移植です。効果音が楽しく、単調になりがちなパズル
Yamada Junji
山田純二
ゲームを盛り上げてくれます。肩ヒジを張らずに楽しみた
い、そんなゲームです0
•KLAX
KLAX
:
「まいど〜おさわがせ しま〜す」とばか
りに,またまたアクション パズルゲームが
発売された。その名も 「 KLAXj ! このゲ
ーム,オリジナルは1990 年にアタリからア さて,
ーケードゲームで登場し,日本では SEGA
からアーケードで出されている。そして,
今回の X 68000 版はハドソンからの発売と
なったわけだ。
ゲームの内容というのは,宣伝文句のと
おり「タテ,ヨコ,ナナメに KLAX! j で
ある。え,なんのことかわからないって?
では,もう少し具体的にいうと,同じ色の
ブロックを縦か横か斜めに3個以上並べる
とそのブロックカ ? 消えて(これをクラック
スと呼ぶ),ある条件を満たすと面クリアと
いうルールになっているのである。と,こ
れだけ聞くと「な〜んだ, COLUMNS と同
じじゃないか」と思う人がいるだろうが,
基本的にはそのとおりだったりする。
が,こちらはコンベアから転がって〈る
ブロックをパドルで受け止め,倉庫に積み
上げていく,というゲーム形態が取られて
いる。しよせんは,どこかで見たようなも
のではないかという気がしなくもないが
(パズルゲームがたくさんあるせいもある
んだろうけど),のめり込める要素も十分持
っているし,出来自体もけっして悪くない。
このところの怒濤のシューテイング寅めで
疲れた頭を休めるのには,ちようどいいゲ
XB 8000 用 5 M 2 HD 版 8,800円(税別)
八ドソン 003(3260)4622
ームだろう。
さあ, KLAX だ! ♦♦♦♦♦♦♦♦♦♦
いきなり結論めいたことをいって
しまったが,もう少しこのゲームについて
見ていくことにしよう。
画面構成は,上半分が コン ベアである。
ここを転がってくるブロックは,全部で10
種類あり,これとは別にどんな色にも使え
るワイルドブロックなんてものもある〇画
面中央にはパドルがあり,プレイヤーはま
ず コン ベアで転がってくるブロックを,こ
のパドルを左右に操作して受け取るわけだ。
そして,画面下が倉庫。ここにブロックを
に落としていけばいい。
倉庫に積み上げられるのは 5 x 5 個のブ
ロックで,全部稍み上がってしまうとゲー
ムオーバーとなる〇ハ。ドルにも 5 個までブ
ロックを積み上げることもできる。複数積
み上がったときには,いちばん最後に積み
上げたブロックから落とすことができる
(図1)〇いわゆるスタック構造というヤツ
だね。
パドルの下には得点表示,画面のいちば
ん下にはクリアすべき
条件,個数が表示され
ている。で,パドルの
少し上にはドロップメ
ーターなるものがある。
ようするにパドルで受
け損なったブロックの
個数が表示されるわけ。
5 回ブロックを受け損
なうとやっぱり ゲーム
オーバ、一となる。
操作については,単
純明快であまり説明の
しようもないのだが,
下方向のキーを押すと
ブロックの転がってく
る速度が上がり,上方
向のキーを押すとパド
ルに積み上げたブロックをコンベアの半分
まですっ飛ばすことができることだけは,
ぜひ覚えておいてほしい。
とはいえ,これを乱用して調子にのって
遊んでいると,あとで混乱の絶頂(笑)を
迎えることになるので,ほどほどにしてお
こぅ。
あそぼ ♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦
では,いよいよ遊んでみよう。と,その
前に各面(ここでは WAVE と呼ぶ)で,ク
リアすべき条件について説明していきたい<
いくら得点を稼いでも, WAVE の最初で提
出された課題(ノルマ)をクリアしない限
り,次の WAVE に進むことができない。課
題のパターンは全部で 5 種類あり,以下列
挙してい〈と,
1. KLAX TO GO X
X 個のクラックスを作る。
2. HORIZONTALS LEFT X
ヨコのクラックスを X 回作る。
3. DIAGONALS LEFT X
ナナメのクラックスを X 回作る。
86 Oh! X 1991.2.
X 点の得点を獲得する。
5. TILES TO GO X
タイルをパドルで X 回受け止める。
となっている。これらの ノルマは, 5面ご
とに繰り返されていて, WAVE が進むごと
にだんだん X の数が多〈なり,条件が厳し
くなっていく。ちなみに,ここでいうクラ
ックスというのは,ブロックを揃えること
を指しているのだ。
慣れないうちは,3番目のナナメのクラ
ックスを作るのに苦労するかもしれない。
基本的なパターンとしては,図2のように
していくのがいちばんよいと思う。惯れて
きたら,3ブロック以上のクラックスを狙
ってみるのもいいだろう。
このナナメクラックスは,あとあとのた
めにもぜひとも マスターして おかなくては
ならないだろう。なぜなら,3個のブロッ
クで構成されるクラックスのうちでいちば
ん得点が高いからである。3個のタテクラ
ックスでは50点しかもらえないが,ナナメ
にすると100倍の5000点であるので,結構効
率的なのだ。
そして,このてのゲームにある連鎖反応
も忘れてはならない。次々とブロックが消
えていき,得点が跳ね上がる。これがある
からやめられませ〜ん,てなもんだ。目指
せ,ビッグ X ! 得点計算については,図
3を見てほしい。
効果音も忘れずに ♦♦♦♦♦♦♦♦♦♦
ゲームの内容もシンプルで奥も深く面白
いが,このゲームの効果音もなかなかおち
図1
積み上げて
落とすと
自分のレベルに合わせて面をスキップできるぞ
ゃめである。
まずは,ブロックが転がってくる音だが,
それぞれのブロックごとに効果音が違うの
である。ぺっぽこ,ぽこぽこ,どどどん,
てな具合にとぉっても楽しい。 BGM がない
代わりにこれらの効果音がプレイを盛り上
げてくれる。
また, 4個のクラックスをやったときに
は女性の声で 「 Woo 〜」とか,5個のとき
には 「 Yaaa 〜〜」などと色っぽい声で叫ん
でくれるし,パドルにブロックがなにもな
いときに スペースキーを たた〈と「ボ ョョ
〜〜ン」などと漫画のような効果音が飛び
出してくるのだ。
WAVE クリア時には観客の拍手,ゲーム
図2
①③ © の順番に落とす
①②③では青のブロックが崩れてしまう
図3
真ん中にワイルドタイルを落とす
赤
赤
緑
W
緑
赤
1赤
20000 ナナメ
+1000 ョコ
.2 I 0 0 0 x [2] クラックスの総数
面の最初にはノルマとヒントが表示される
オーバーのと きには 「Aaa 〜」 と 聞く からに
残念そうな声までやってくれる。聞ぃてて
恥ずかしいこともなくはなぃ力す,楽い、こ
とには変わりなぃ(しかし,•自室でやって
いたら親はぃったいなにやってんだろ,と
思うかもしれなぃな)。
まとめ ‘
で,ひととおりゲームをプレイしてみた
感想としては,操作もルールも単純明快だ
し,また本文中に何回も述べてぃるように,
確かにそれなりの面白さがある。しかし,
やっぱり去年ノぐズルゲームが多かったせい
なんだろう力%今となってはありきたりの
感じを受けてしまうのが残念。
ちょっと気が向ぃたとき,のほほ〜んと
プレイするのがいちばん向いているのかな,
こういったタイプのゲームは。
パズル ゲームというのは一発アイデア勝
負どころだから,もっともっと奇抜なテイ
デアが出てきてもおかしくはなぃんだろう
し。難しいところだねえ。ふう。
私,負けましたわ
KLAX , このゲームについてはあまり語ること
はない。すでに,家庭用ゲーム機にも移植され
ているので知っている人は知っているだろうし。
これといって強力なウリはないが,静かな面白
さを持っている,そういったゲームだ。
が,そんななかでも,効果音はとんでもなく
気に入ってしまった。寝不足ナチュラルハイ状
態のプレイ中に,思わず右手を振りかざしてノ
ッてしまうほどだからね。
アタリのゲームには,親切なことにそのまま
でよいような•言葉まで,わざわざ妙な日本語を
使ってくれるくせがあるが,このゲームもその
特徴は生かされている(笑)。なんでも社長が猛
烈な日本ファンだとか。ま,この点については
笑って見逃してあげましょう。
総合評価 0_5_10
グラフィック ★★★★★★女
効果音 ★★★★★★★★★女
ゲーム性 ★★★★★★★女
ビッグ X ★★★★★★★★★
日本語 ★★★★★★★
THE SOFTOUCH
87
HE SOFTOUCH
男は筋肉だ,ムキムキだ If , イエイ!
■
Nishikawa Zenji
西川善司
あのレナムから1年,ようや〈ヘルツの X 68000 用ゲーム
第2弾が登場。今回は,うって変わってアクションもの,
アー ケードゲームからの移植作品だ 0 ジョイステイックで
ガシガシやりたい。
•タイナマイト•デ=1ーク
初めにいっておくが,私西川善司はホモ
ではない。が,筋肉ムキムキの男なんかに
多少の憧れがある。というのは私は痩せ男
で,力もあまりなく,小学校の体育のプー
ルの時間のときにはよく「人体骨格標本」
なんて,たいそうな冷やかしを食らったも
のだ。
だから力持ちの男にはちょっと畏敬の念
をもっちゃってたりするわけだ。そんな憧
れからか シュワルツ ネッガーや スタ ロー ン
の内容のほとんどない映画なんかもよく見
るし,格闘もののゲームも結構やったりす
る(遊園地とかにある腕相撲 マシンは 間違
ってもやらんけどね)。
で,今回発売されたダイナマイト•デュ
—クはそんな筋肉ムキムキの男が単身敵基
地へ 乗り込んでいく横 スクロール 型格闘シ
ューティングだ0このゲームはあまり有名
でないかもしれないが,ゲームセンターの
ゲーム,つまり アーケード ゲームからの移
植なのだ。オリジナルはセイブ開発という
メー カーなんだけど知っている人はいるか
な。最近ヒットしているシューティング「雷
電 ( RAIDEN ) J を作ったメーカーだ。え,
「雷電」も知らない?あの「究極タイガー」
の SF 版見たいな奴(あ,禁句かな,これっ
て)。まあいいや。移植は「全身凶器の怪
力女」という流行語を世に送り出したゲー
ム「レナム」を制作した ヘルツ だ。
X 680 U 0 用 5"2 HD 版3枚組8,800円(税別)
ヘルツ 003(3371)3012
こんなストー U —だズガガガガ ♦♦♦
舞台は近未来。環境の激変に対応すべく
新人種が創り出された。これが強化人間と
呼ばれる人種で,開発に着手していた軍人
のひとりがそいつらを従え,世界征服の計
画を企てちゃったのだ。 で,ゲームの 主人
公であり強化人間第1号の「レッド•ダイ
ナマイト」(本名はデューク•フリードリッ
ヒ.フヱルゼンだそうだ0道端じゃ絶対フ
ル ネームでは 呼びたくない奴だな) は, こ
の計画に背いて一度秘密基地から脱出する
ものの,組織撲滅のため単身舞い戻る……〇
なんか仮面ライダーの話に似てないことも
ない力、とにかくこれが「ダイナマイト.
デューク」の バックス トーリーだ。
こんなゲー h だズガガガガ ♦♦♦♦♦
ゲームは,右から左ヘスクロールする背
景の陰から次々と出現する敵を,マシンガ
ンの照準を合わせて擊ち倒すといった一見
オーソドックスな内容。しかし,によっ
てはデュークのそばまで近寄ってきて攻撃
してくるものもいるので,そういった連中
とはパンチやキックの肉弾戦となるのだ。
肉弾戦中は基本的に銃が使えない(要する
に遠くの敵が倒せなくなる)ので,このへ
んの駆け引きがゲームの面白さにつながる
わけだ0肉弾戦時は プロレス ゲームのよう
にスティックの方向と, A / B ボタンの押し
具合でさまざまなアクションをデュークカ 5 '
見せてくれるぞ。また,敵は兵士のほかに
も戦車や戦關ヘリ,挙げ句の果てにはゾン
ビや忍者,わけのわからんゲロゲロエイリ
アンまで飛び出してくるぞ……。
ところで,敵を撃ったり殴ったりするだ
けならどんな人間でもできなくはない。し
かし,主人公デュークはいうのも恥ずかし
い強化人間なのだ。強化人間といえば「必
殺技」だ。彼の右腕は機械でできているが
別に「パックスのしわざ,その1」のせい
でもなんでもなく,その必殺技を繰り出す
ためにつ いている のだ。その名も「ダイナ
マイト •パンチ」, B ボタンを押し続ける
と パワーゲージが 上がりだし,ゲージ ] VIA
X のところで離すと打つことができる。こ
れは画面上の敵を一掃できる必殺技で,ま
あ, A - JAX や究極タイガーなんかのスー
パー ボムのようなものといえばわかっても
らえるだろう。
ゲーム中,自分に攻撃を仕掛けてこない
物が バシバシ 壊せるのもこのゲームの面白
さだ。ベンツやジープ,電話ボックスに配
電ボックス,実生活では絶対に壊せないも
のまで壊せるぞ。え? そんなのいつもや
っているって0そりや犯罪だぞあんた,パ、
ビヨーン。で,多くの場合こういったもの
の中からパワーアップアイテムが出現する。
弾丸やダイナマイト•パンチの素なんかも
あるから「怪しい」と思ったら迷わず擊っ
てみるといい。
各ステージの最後にはボスがいて,こい
つらもデュークと同じ「強化人間」だ。確
か「強化人間」は「環境の激変に対応すベ
く」開発されたというのにどいつもこいつ
もひょうきんものの個性派揃 L . 。各ボス
は主人公同様「必殺技」を持っていて,そ
れをデュークに対して執拗にしかけてくる
(というよりほかに技がないのかもしれな
ステージは 全部で9。各 ミッション 変化
に富んだ敵キャラ,背景で,もうアドレナ
リンじゅくじゅくだぜ,ベイビー。
ほうら,背中が透けてる
88 Oh! X 1991.2.
ステージ攻 IS だズガガガガ ★♦餐♦餐
ボタンを押すと 「 CREDIT : 0」と出
てくる。さらに B ボタンを押すとクレジッ
卜が増えていく。9までしか入らないよう
だ。つまり コンティ ニュー回数は9回とい
うこと。ステージは全部で9だから妥当な
回数といえよう。ゲームを開始するとステ
ージ1の始まりだ。当たり前だ,突然最終
面が始まるわきゃない。
1面は敵飛行場の破壊。 スクロールが 始
まるとジープが目につく。これをまず破壊
してみよう。防弾チョッキが出てきたはず
だ。これをさらに擊ち続けると下に降りてき
てアイテムゲージに収まり自分が身に付け
たことになる。このようにアイテムは出し
ただけでは駄目でちゃんと繋って取らなけ
ればその効果を得られないのだ。
おっと,さっそくいかにも雑魚という感
じの兵士が飛び出てくる。ジョイスティッ
クで照準を合わせてショットしよう。数発
弾を当てるとこの雑魚兵士は 「ワン」
といって倒れるぞ。犬か, こいつら は。気
づいたと思うがデュークは背中に穴が空い
ている(「あんた,背中が透けているぜ」な
んちゃって)。これは別に病気でも心霊写
真でもなんでもない,デュークの目の前に
敵が接近してきたとき,その位置をわかり
やすくするため便宜上こうなっているだけ
なのだ。でも目が惯れるまではちょっと奇
妙な気分だ。
ぉぉっと,雑魚キャラものがして溜めす
ぎるとちょっと大変だぞ。画面中敵弾だら
セビアに時が止まる! つてか?
どうでもいいけどヘンなカツコ
けっこう強いヘリコプター。でも本ボスじやない
けになっちまう。これまた気づいたと思う
が敵の弾は自分の位置に接近してくると色
がオレンジから白っぽい黄色へと変わる0
この性質を利用して敵の弾の遠近をつかん
で効率よくよけよう。そうだ,いい忘れる
ところだった。敵の弾をよけるのにもって
こいの技がある,「伏せ移動」だ。ジョイ
スティックを斜め下方向に入れると通常よ
り高速に移動ができるのだ。するるるる一
ってな感じだ。
しばらくするとスクロールが止まり,中ボ
ス「武装ヘリコプター」が登場してくる。
地道にマシンガンもいい力す,せっかくだか
らいっちよ派手に「ダイナマイト•パンチ」
を使ってみよう。……さすが必殺技,一撃
でへ リコプタ ー 爆発だ。ズバーン! ! !
そのあと少しの間,雑魚との戦闘が続く。
で,本ボス登場。こいつは「スタンガン」
とかいう名前のデュークと同様強化人間だ。
こいつは右腕がロケットパンチ,左腕がマ
ジッタハンドという,もはやまともな日常
生活は送れない,人生を投げたような奴だ。
このゲームを始めたばかりの人は,恐らく
こいつにかなり苦しめられることだろう。
スタンガンはマジックハンドを振り回す
前に腕を水平に構える。これを確認したら
すぐ「伏せ」の体勢を取ろう。ノーダメー
ジでよけられるぞ。どの面の本ボスも自分
の「必殺技」を使うとき,必ず独特のポー
ズをとるようだ。頭に叩き込んでおこう。
ジャンビングキックやダイナマイト•パン
チがうまくスタンガンに命中すると,奴は
遠くへ放り出される。このときスタンガン
は起き上がりざまにロケットパンチを撃っ
てくるので注意しよう。これも「伏せ」で
避けられる。
と,このように,本ボスは闇雲にジョイ
スティックをガチャガチャやって戦わず,
しっかり自分なりのパターンを組み立てて
戦えばそれほど難しくないはずだよ。
では最後に全ステージタリアのためにポ
イントを示しておこう。
•ステージ3の橋の上の砲台はダイナマイ
卜•パンチでやっつけよう。ダイナマイト •
パンチが砲台に隠されているので結局± 0
だ 。
•ステージ4。中ボス戦車の出てくるシー
ンで手前の柱に防弾チョッキが……。
•ステージ5は最初の力べとなるだろう。
中 ボスヘリ コプターのシーンで 「FULL A
UTO 」 のアイテムがあるが,これは取らな
いこと。次に出てくる本ボスは結構堅いの
でダイナマイトパンチを使って倒そう 。 「F
ULL AUTOj を取ってしまっているとダ
イナマイトパンチが打てないぞ。
♦ステージ7の赤忍者の手裏剣は,相手が
投げのポーズのときに一度伏せ移動で左に
行ってから右へ行けば簡単によけられる。
翁ステージ8のゾンビシーンに出てくる救
急箱は「毒」。取ると体力が減っちゃう。
籲最終面のボスは2回変身するので体力配
分,弾数配分を慎重に。1回目の変身時は
ジャンプキックの連続をお見舞いすれば楽
勝。2回目変身時に繰り出してくる触手は
正面に来ても「伏せ」てればやられない。
• 了 ッパーとジャンビングキックは必ずマ
スターすること。対本ボス戦の有効な戦力
A 5 からね。
•溜まった敵をマシンガンで撃っときは照
準を左右上下に振りながらだと効果的。
マィナーァ■ベトドゲー厶の移植大賛^
見た目が派手なだけの内容のない新作に,
テーブルを譲った数多くの名作ゲームたち……。
こういったマイナー ァーケー ドゲームの X 6800
0への移植は(まぁいろいろ意見もあるだろう
が)私は 大 賛成だ。お気に入りのゲームだった
のに,ゲームセンターから突然姿を消してし
まったゲームが沢山あるのだ,私には。 ヘルツ
さん……,次は「ぶたさん」「ワンダーモモ/ラ
ビオレブス/ダーウィン」あたりを移植してく
ださいよん,ゴロニゃん,うふん。
• 総合評価 〇_5_10
ゲーム性 ★★★★★★女
操作性 ★★★★★★女
サウンド ★★★★★
グラフィック ★★★★★★女
難易度 ★★★★★★
ムキムキ度 ★★★★★★★★★★
THE SOFTOUCH 89
戦え! 7卞遠のライバルたち
Komura Satoshi
古村聡
PC -8801 版で人気を博した ゲームの 移植版。が,もちろ
ん このゲームの ウリである ビジュアル やキヤラクターグラ
フイックは X 68000 用に新たに描き起こしたもの。ジョイ
ステイックやマウスにも対応している。
>エメラルドドラゴン
「ゆ,許さんぞ!オストラコン!」
「ほう,許さなければどうする? 俺は以
前とは違うぞ,かかってきてみろ!」
くう一っ,燃えるぜ。ついに出た出たやっ
と出た,エメラルドドラゴン,通称エメド
ラの X 68000 版がこのたびグローディアか
ら発売になったのです。思えば PC -8801
版が発売になってから1年余り。長い年月
でありました。しかしながら,待った甲斐
あってしっかりとグレードアップして登場。
うるうる,生きててよかった……。
え 一, このエメドラは,いわゆる RPG と
いわれるやつなのですね。しかし,しかし
だ。こいつをそんじよそこらの RPG だと
思っちゃいけない。主人公のアトルシャン
(こいつが人間じゃなくてドラゴンなのだ,
実は),ヒロインのタムリン,そしてその仲
間たちの友情あり涙あり,アニメーション
あり,美形のライバルキャラありと少年マ
ンガもビックリのああ,浪速節 RPG なのだ。
さあ,とくとご覧あれ(ベンベン)。
大丈夫,君を守ってみせるよ ♦♦♦♦毎
いま,アトルシヤンの目の前にタムリン
がいる。温かいティーカップを口に運びな
がら,彼は彼女のことを,そして昔一緒に*
過ごした日々を懷かしく感じていた……。
彼女は幼いときアトルシャンのいるドラ
ゴン小国にやってきた。ドラゴン小国に迎
り着いた難破船の唯一の 生き残りとして,
だ 0 そしてドラゴンである アトルシヤンと
一緒に,人間の タムリンは育てられたのだ。
が,やがてタムリンはイシュ•バーンに帰
つていく。タムリンを心配したアトルシヤ
ンは,彼女に自分の角を折って角笛として
渡したのだった。なにかあったらこれを吹
いて,いつでも君を助けにいくよと……。
それから3年の後。アトルシヤンはタム
リンの吹く角笛の音を聴いた。だから彼は
彼女を守るために遥かなる次元の向こう側,
そしてドラゴンにとっては呪われた地であ
るイシュ•バーンへとやってきたのだ。
タムリンの口がゆっくりと開く。
「どこからかこのイシュ.バーンへ魔将軍
オストラコンの率いる魔軍がやってきたの。
いまやイシュ.バーンは落城の危機にさら
されて……。明日にもここに侵攻してくる
かもとみんな恐れおののいているわ」
「……なるほど。タムリンとしてはほって
はおけない,というわけか。しかし女の身
で戦うとなれば相当の覚悟が必要になるぞ。
悪くすれば死ぬかもしれない」
わざと表情を変えないように,そして夕
ムリンの顔を見ないように彼は続けた。
「……魔族に殺された連中は死んでもなお
生きるんだ。死霊ってやつさ。俺はやだね」
タムリンと目を合わせる。タムリンはア
トルシヤンをはたこうとしたのか手を上に
挙げていた。そして大きく息を吸って手を
下ろし,いかにも落ち着いているふうにい
X 68000 用5 "2 HD 版6枚組9,800円(税別)
グローディア
303(3820)5226
った。が,息がふるえているのがわかる。
「いい わ。もうあなたには頼まないわ。私
ひとりでも戦ってみせる!」
予想どおりの答えにアトルシヤンはなん
だかちよっとおかしいような気さえした。
「悪かったよ,タムリン。君の決意のほど
を試させてもらっただけさ。もっとも君が
そう答えるのは初めからわかってたけどね」
「……それじゃあ……」
こうして彼らの危険な旅が始まったの
だった。魔軍を倒すカギはただひとつ,ア
トルシヤンが白龍から聞いたエメラルドド
ラゴンの謎,だけだ。でも大丈夫だよ,夕
ムリン。俺は君を守ってみせる,必ず,ね。
心の中でアトルシヤンはそうつぶやいた。
システムはストー 1 J 一と共に ♦♦♦♦
このゲームは RPG ですが,最近流行り
の ARPG と違ってマップ上を敵キャラが
チョコマカ歩き回っているわけではありま
せん。自分が歩いていて敵と出会うと画面
が切り替わって戦闘画面になるのです。
戦闘は敵キャラとマイキャラのパーティ
の俯瞰図になり,チョコマカと2頭身のキ
ャラたちが動き回って戦闘してくれます。
動かせるのはマイキャラのみ。あとのキャ
ラたちは自分の意志 (?) であっちの敵を斬
りにいったり疲れて戻ってきたりします。
また,レベルに自信があれば自動戦闘も可。
それでもどこぞの“ガンガンいこうぜ”と
かやる AI 戦闘なんぞよりよっぽど賢い。
戦闘シーン。ザコでもなんでもぼてくり
これが街の中 c よつ! 市民 A , 元気かい?
HE SOFTOUCH
:, H-VH tH
11*/ 1 r*
L • ♦'Acrcf • •
/ H -/H prH o H
#“. ♦■.•• 命 J
90 Oh! X 1991.2.
おおっと,レベルの話。この ゲーム, 基
本的にアトルシャン,タムリンも含め5人
のパーティで行動するのですが,実はその
なかで戦闘を行ってレベルが上がっていく
のはアトルシャンとタムリンだけなのです。
では残りの3人のヒットポイントの最大値
やストレングスは?そう,固定されたま
まなのです0じゃあどんどんレベルの上
がっていく敵にどう対処しているのかとい
うと,シナリオが進むにつれてドラマが展
開されながらメンバーが入れ替わり,旅を
続けていくという方式が取られているので
す。要はメンバーがどんどんチェンジして
いくわけなんですね一。いやあ,すごい。
7卞遠のライ八ルたち! ♦♦♦♦♦♦♦♦
アトルシャンたちが初めて敵の魔将軍才
ストラコンと出会ったのは魔軍前線司令部
だった。オストラコンは天才的策略家,し
かも冷酷非情な男である。
「オストラコン! 覚悟っ!!」
アトルシヤンはそう叫ぶとオストラコン
が身構えるより早く斬りかかり彼の右腕を
切り落とした。
「ぐごあわ!俺様の右腕をよくも!」
しかし,彼は部下の助けで命からがら逃
げ出していたのである。
しばらくの時が過ぎた0元フラワルド伯
爵邸にオストラコンがいると聞いて急襲を
かけたアトルシャンたち。
「オストラコン!!」
7 トルシャンが剣に手をかけようとした
その瞬間2匹の魔物が彼らの前を遮った。
「ココ ヲト オスワケニハイカン!」
オストラコンは薄笑いを浮かべてこちら
を見ている。はっ,とタムリンが息を飲ん
だ。なにかに気づいたらしい。
オストラコンの右腕だ!
切り落としたはずの右腕,それは明らか
ぐいぐい引っ張ってくれるのだが……
遊んでもらえるゲームを,ということをよく
考えて作られたゲームだと思う。アニメシーン
をつけることで「早く次のグラフィックが見た
い」と思わせる。相談コマンドで「次はどこど
こへなになにしに行くべきだ」とほかのキャラ
クターが教えてくれる。これで次の目標をプレ
イヤーに教える。エンディングへ向けての引力
があるといってもいい。スタッフの頑張ってい
る姿が目に浮かぶようだ。
ただひとつ難をいえば,少々ゲームの作りが
荒っぽいように見えてしまうことだ。たとえば
戦鬪中のメッセージで「残念,逃げられない!。」
と“!”のあとに“。"があったり,ハスラム
がファルナにいうセリフなのだが「顔色がうか
ない」などという不思議な日本請があったりす
宿敵オストラコン。 う一ん,美形だなあ .
ああ,水晶に捕らえられたハスラム。いい構図ね
にこの世のものとは思えぬものだった。魔
性 . 。オストラコンはアトルシヤンたち
に復饗するために魔に魂を売り渡したのだ。
「侍っていたぞ……」
オストラコンが静かにいった。
「オストラ コン!」
「おっと。その前にこいつを見るんだな」
ォストラコンが異様な右手を突き出す。
その手のひらには不気味な黒水晶が……。
「ハスラム!」
ファルナが叫んだ。そう, エルバー ドの
危機を聞いてパーティを去っていったハス
ラム王子だ!
ハスラムが黒水晶の中に閉じ込められて
人公,強く冷酷な美形敵キャラとくれば,
普段から少年マンガにどっ ぶり の方には必
須のゲームですね。なんてっ たって最近の
少年マンガは“絵がきれい” で “ヒロイン
が超かあいい”というのが必須条件ですか
ら(たとえば“ああっ女神さ まっ!’’と力> “ 3
X 3 EYES ” とか……,でしよ?)。
このゲームの最大の特長は,やっぱり グ
ラフィック。これがなんてったってディス
ク6枚組のうちオープニング, エンデ ィン
グ,ビジュアル A / B の 4枚が グラフィッ
クデータだという 力の入れよ う'なのです。
もう店頭デモな どでご覧に なっているでし
よう力 ? , グラフィックは非常にきれいです。
いるのだ!
それにヒロインのタムリンも見目麗し〈愛
「見てのとおりお前らの大切な仲間は俺様
が預からせてもらった……。この小僧が助
かるも助からぬもお前ら次第だ。」
「なにが望みだ,オストラコン!」
「お前たちの命 . 」
少年マン通つっぱしる RPG なのだ! 0
という感じで,ドラマはアトルシャンと
魔将軍オストラコンの戦いを中心に描かれ
ていきます。そして,このストーリー展開
こそがグラフィックと並んでプレイヤーを
前へ前へと進ませる吸引力を作っているわ
けです。かわいいヒロイン,それを守る主
るのだ(これは「顔色がよくない」「うかない顔
をして」のどちらかが正解だろう)。ささいなこ
とだし,作った人たちは決して雑に作っている
つもりはない。いや,できるだけ真剣に作って
いるはずだ。でなければこんなに売れるゲーム
に作れるわけがないのだが,そのように見えて
しまうのも事実なのだ。
これだけ売れてしまうといろいろとプレッシ
ャーもかかり大変だろうが,次回作でぜひこの
ようなことにも気をつけて頑張ってほしい。
総合評価 〇_5_10
お手軽度 ★★★★女
ストーリー展開 ★★★★★女
自動戦闘モード ★★★★女
ミュージック ★★★
タムリン ★★★★★★★★★女
おすすめ度 ★★★★★★★★女
らしくかあいいかあいい本当にかあいいの
だ! ぐふふふふ,じゆるっ(こらこらっ)。
ご存じのようにこのゲーム, PC - 8801
版からの移植なのですが,グラフィックも
そのままもってくるような横着はしないで,
ちゃ一んと X 68000 用に描き直してくれて
いるのでした。ちょっと PC -8801 版と絵
の感じが変わったところも多いです力す,決
してグ 、レー ドダ、ウンということはありませ
ん。ちょっとオープニングは顔が丸っこく
て,ゲーム中のグラフィックは縦に長くな
っちゃってるな 一, という気もしますけど。
とにかくヒロインがかあいい,美形の敵
キヤラがいる,そしてアニメーションと最
近の流行りをばっちり押さえた少年マンガ
道をつっぱしってるゲームなのです。
なにはともあれ,このゲーム,実は結構
時間のかかるゲームなのですが(まあ,あ
れだけのストーリー展開がありますからね。
しかたないっちゃしかたないでしょう),
ひとつ間違えばただマップがだだっぴろい
だけの退屈なゲームになるところを,うま
く見せ場を盛り込み時間がたつのを忘れさ
せてくれます。移植も完璧ですし期待を衷
切らないという意味ではまったく感謝した
いくらいの出来でしたね。休みなんかにど
うですか? 絶対おすすめ,イチオシのゲ
ームですよん。
THE SOFTOUCH
91
HE SOFTOUCH
テ—ブルト—クの本家,いよいよ登場
ISii/Sl
Kameda Masahiko
亀田雅彦
1 月海」の北側の地には 1 フフン」こいつ数干牛前に瑕盟 ;
期を迎えた都市が存在していた。「新市街」の「評議会」
を中心とする人間の軍と「旧市街」の「邪悪」な軍が対立 I
するなか,新生「フラン」を再興するのだ 0
: . 'm:- ”一 ふね ^' 以 ^^ 警ビ
一 ' — : • ■ 11 一 V —'
久しぶりのレビューで,いま猛烈に緊張
している。いつもの「ですます調」文体ま
で忘れちまった。ふっふっふっ,どんな
ゲームでも相手になってやる。
今回の相手は AD & D ® (Advanced Du
ngeons & Dragons ) から 「POOL OF R
ADIANCE 」 た ^ これは,アメリカで大
ヒットした(と,ものの本に書いてある)
AD & D ® をパソコンでパクった (?) ゲー
ム。みんなでワイワイやるテーブルトーク
を,ハ。ソコンを使ってひとりで遊べるよう
にしたってわけ。なにしろ AD & D ® といえ
ば,日米共にその筋で知らぬものなし。而
白さは保証つき。あとはいかにコンピュー
夕化したか?ってことだけが気がかりだ
ね。そこで今回のレビューは,ガンガン!
本音で勝負しようと思っている。辛辣な表
現も出てくるかもしれないがそこはご容赦
願いたい0
さて,まずはシナリオの面白さを知って
いただこう。いまあなたはパーティを組ん
で,ある使命を遂行しようとしている。題
して,
墓地に閱夜が迫るとき,ァンデッドが甦る
〜失われた英雄伝説〜
このヴァルヒンゲル墓地の掃討を依頼さ
れたとき,パーティの中には反対するもの
もいた。魔術師のサマンサはアンデッドを
恐れ,盗賊のドロキチは「墓荒らしは趣味
XI turbo 用 5〃2 D 5 枚組9,800円(税別)
ボニー キヤニオン 003(3221)3161
じゃない」と言った。しかし,僧侶のボー
ズは退散呪文にいささかの自信があり,
「アンデッドごとき敵ではない」と豪語し
た。戦士 KAME , ドーイもその言葉に勇
気づけられて,この話を受諾したのだった。
パーティはこの時点で5人。歴戦のなか
で,3人が帰らぬ人となっていた。我々は
町の訓練場で2人の傭兵を雇うことにした。
彼らの名前はヒーロー兄弟。傭兵の中でも,
最も強い兄弟だ。我々の戦士らと同等のレ
ベルはある。かなりの年のはずだが,力強
さは若者に負けず,かなりの修羅場をかい
くぐってきたはずだ。めったに表情を変え
ず,無駄なおしゃべりもしないので,それ
以上のことはわからなかった。
隠された聖綺士の謎 ♦♦♦♦♦♦♦♦
墓地にはさまざまなアンデッドモンスタ
一がいる。アンデッドモンスターはより上
級なモンスター(スペクター)によって召
還されている。スペクターをやっとの思い
で倒すと,スケルトンやゾンビなどの下級
モンスターは召還されず,もはや墓地には
いないようだった。
そんなとき,パーティは十字架の形をし
た大理石の納骨堂を見つけた。そこには…
…はるか昔の聖騎士伝説が累々と記されて
いるではないか! 我々は慌ててその巻物
を読んだ。
「無敵の名をほしいままにしていた戦士
がアンデッド退治のため墓地へ入った〇し
かし,彼はついに帰らぬ人となった。
彼の弟もまた聖騎士であった。兄の仇と
ばかりに,女祭司長の力を借り墓地へと乗
り込んだ。何千年も生きてきたバンパイア
の魔力は想像を絶するほどだ。しかし,彼
らの聖剣,魔法を込めたメイスは,ついに
バンパイアを仕留めた。その断末魔の叫び
は墓地全体に»いたそうだ」
パーティは読み終わった巻物を静かに置
くと,あとずさりするように建物を出た。
記述にあるバンパイアに恐怖を抱いたのか
もしれない。
最後の死闘 ♦♦♦♦♦♦♦♦♦♦♦♦♦
力す,しかし,その恐怖はすぐに現実のも
のとなった!!我々が建物を出た瞬間,空
間に巨大な魔力が集中する。身ネ算える間も
なく,集中した魔力は青白い顔の男へと姿
を変えていく。
バンパイ アのわきには2匹のウルフがい
る。こいつらも魔法を使うようだ。
我々は皆,死を覚悟した。と同時に,興
奮する自分を感ぜずにはいられなかった。
ボーズが退散呪文を放ったがまったく効
かない。レベルが足りないのか?
バンパイアの右手が上がった。ウルフは
ファイアーボール(火:暴発)の呪文を投
げつける。火炎は僧侶,盗賊,戦士を飲み
込んだ。3人はとてつもないダメージを受
け,ほとんど即死した。
残った戦士3人はバンパイアに攻撃を集
中するため,敵の真正面に立った。バンパ
イアの左手が青白〈輝く。その手に触れら
れた戦士は急速に痩せ細った。そして,つ
いにその存在自体が消滅してしまった。生
命力を奪われたのだ。もうひとりもウルフ
と相打ちに。パーティの残りは2人。敵は
バンパイアとウルフ1匹。
サマンサは以前の冒険で,ワンド•オブ •
ライトニングボルトを手に入れていた。そ
れはその強力さゆえに,一生使わないと心
に誓ったものだった。
ワンドを手にすると,白い稲妻が衝撃波
この番号をマニュアルで参照してと,フムフム
92 Oh! X 1991.2.
t なって空間を切り裂き,バンパイアの体
に衝突した!そしてその体を突き抜け,
ウルフを壁に叩きつけた。
しかし,バンパイアは生きていた。一瞬
の スキをついてマジックミ サイ ルを 放って
きたのだ。なすすベもなく戦士は倒れた。
さらに,ライトニングボルトとマジック
ミサイルが同時に放たれた。墓地の闇は真
っ白に染まり,ものすごい量の魔力が解放
された。そして,そのあとには……。
ホ氺ホ
私は眩いた。「あれ,どこまでセーブし
といたっけ?」
グームシステム ♦♦♦♦♦♦♦♦♦♦♦♦
いままでの話はゲーム中にいくつかある
タエストのひとつ。しかも,かなり簡略化,
脚色してある。でも,ゲームバランスのよ
さ(難しすぎず,簡単すぎず)や,シナリ
才のドラマ性は伝わっただろう(?)。
さて,それではこのゲーム本体の説明を
しよう。あなたはまず8人以内のパーティ
を組む。そしてフランという町の評議会に
行き,仕事(たとえば,「墓地を掃討せ
よ」など)をもらう。その仕事自体がタエ
ストになっていて,解決すれば報酬がもら
えるし,冒険中にも宝を発見できる。また
そうした仕事をこなしていくうちに,いろ
いろな手掛かりを見つけてフランの謎を徐
々に 解いていく。
このゲームの 特徴や面白い点を列挙して
みょう。
•シナリオ,およびイベントのバランスが
とれている
ゲーム全体の謎解きと個々のクエストの
関わりがはっきりしているので,ゲームの
進行に無理がなく,飽きさせない。
•細かいメッセージなどに気配りがある
キャラクターをパーティから外すとき,
「安堵の溜息をついた」「別れを告げた」「放
り出した」など状況によってメッセージが
違う。パーティの行動制約も少なく,少し
でもテーブルトークに近づけようとしてい
る努力を認めたい。
せっかくいい気持ちで寝ていたのに
墓地の中は寒いので,あたりは銀世界?
この ゲームで 忘れ ちゃい けない存在は,
NPC (ノン•プレイヤー •キヤ ラクター)
だ。先の例では「傭兵」と書いたが, NP
C はまさにそんな感じだ。冒険途中でハ°一
ティに入る奴もいる。強い奴,弱い奴,ま
た,敵なんかもいて, NPC の 存在はこの
ゲームの 差別化にひと役かっている。また
戦闘時の戦略にも欠かせない(なぉ, NP
C の 行動は コンピュータ が行う)。
•かなり洗練されたゲームである
すべての操作がテンキー(ジョイスティ
ックでも可)オンリーのメニユーセレクト
方式。ディスクアクセスを最小限に抑えよ
うとする努力も見受けられる。かなりのテ
ストプレイを積んだとみた!
•種類が豊富
キャラクターには人生観まで設定できる
し,顔,体,戦闘時のアイコンまで変更可
能(男の顔に女の体はぶっき一)。武器も
かなりあるし,持ち物の重量や貨幣といっ
た本家の細かい設定を忠実に再現している。
それが面倒臭さにつながってないことが,
感情移入にプラスに働いている。
とりあえず印象に残ったものを書いてみ
たが,結局 「 AD & D % と「プログラムの
気配り」の2つが特徴だと思う。
続いて「これはアカん」と思う点。
鲁ディスクアクセス
戦闘が始まるときにガーガー,終わると
きにもガーガー。アクセスの多さはしかた
ないとしても,そのスピードが遅い。ぉま
けにデイスク5枚組 (+ ユーザーデイスタ)。
こいつが墓地の親玉,バンパイア
2 HD ディスクも入れるとか,バンクメモ
リ, EMM を使うとかの気配りがほしかっ
た(いいゲームだけに残念)。
•プロテクト
翻訳 デイ スタなる マニュアル プロテクト
があり,起動のたびにパスワードを入力す
る。ゲーム中にもこのパスワードを使う場
所がある。面倒臭さが増しているだけで,
正規 ューザーに メリ ッ トがない。
ほかにゲーム中の重要なメッセージが別
マニュアル になって いる (これは単なる容
量の問題でプロテクトじゃないと思うけ
ど )0 つまり,ゲーム中に「何番の文章を
見ろ」というメッセージが出る 0 プレイヤ
一は別 マニュアルの 何番を見て,その状況
を把握する。これは「画面のメッセージを
書き写さずにすむ J などの理由で便利だ。
これはほかのゲームでも参考にしてほしい<
籲フラン市街の外に出るとやる気を失う
「クエス トの目標がはっきりしない」,「や
たらとモンスターに出会うので,前に進め
ない」という理由で外のタエストはとても
やる気になれない。ただし,フラン市街だ
けでも普通の RPG 1本分は楽しめる。
やっぱりデイスタアクセスが問題かな。
これらをプラス,マイナスした結果,私
はプラスの評価をしたい。 Xlturbo でこ
こまでの仕上がりは,注目に値する。特に,
プログラム技術をウリにすることなく,あ
くまで「楽しめる」という視点からゲーム
を作る姿勢がいい。この「ゲーム性を重視
したゲーム」精神を大切にしたい。
テーブル ト ークは 面白い
「 XI のゲーム」というだけでめずらしい昨
今。出るだけでもありがたく,ゲームの善し悪
しを判断するのも難しいが,8ビットパソコン
上のゲームとしては,かなりよい出来である。
16ビット以上も含めた RPG ゲームー般から見た
場合は,普通のレベルだと思う。
しかし,ここで注目したいのは,最近の RPG
の動向だ。近頃,特に“ドラクエ"タイプの小
さいキャラがチョコチョコ走り回るものが多い。
ムは,大人向け(オタク向け?)の本格派とし
ての価値がある。
あとひとつ。 Xlturbo 用なら400ラインディス
プレイ専用にして,漢字をちゃんと表示してほ
しい。せっかくの漢字 VRAM が泣くぜ。
総合評価 f ^_1,0
シナリオ ★★★★★★★★女
グラフィック ★★★★★★女
音楽 ★★★★★★女
正直言って,あのテの RPG は私は感情移入でき 操作性 ★★★★★★★女
ないのでパス。それとは正反対をいくこのゲー 快適度 ★★★★女
THE S 0 FT 0 UCH
93
HE SOFTOUCH
►キャラクターがでかいだけあって,迫力
がある。マテイアス VS ゼラーなんてすごす
ぎて感動した。力す,最後の敵をもう少し強
<してほしかった0それに,ムーンブレイ
ドなしで倒せるのはなんとかして!
= :
X 68000 オンリーのソフト ハウス,ズーム
は,前作のジヱノサイドの出来がよかった
こともあり,かなり注目されているようで
す0さて,アクション RPG となった第 2 作
「ラグーン j の反響はどうでしようか?
笹倉英昭 (15) 兵庫県
►ストレスを感じさせない,実に スムーズ
な進行0ここに ズームの 14 力 月のこだわり
を感じる。また,例によってのディスクエ
ンべロープの 心づかい。涙。
西本英樹 (18) 北海道
►絵,音,動き,ともによくできていると
思う。これで4方向じゃなくて,8方向だ
たらもっとよかった。敵は弱いけど終わ
ないゲームよりはよっぽどいい。
安永吉徳 (21) 長野県
「X 68000オリジナルゲームはムズイ」と
うのを打ち破ってくれたもんね。けど,
簡単すぎたかも……。計10時間ほどでタリ
アできたもんね。澤田裕史 (15) 神奈川県
►ホホホ,やっとラダーンが出た。エンべ
ロープの“ネコ”が楽しみで買ったのだが,
X 68000 にしてはめずらしく最後のボスが
弱い。また,もっと 「 X 68000 ならでは」と
いうのがほしかったが,魔法がハデでいい。
エンディングは最高だ。あと,なんかイー
ス II ににてるぅ〜。宮前龍也 (15) 東京都
► 9月15日の午前に買ってきて,午後1時
からやりはじめた。そして8時間後,エン
ディングを迎えていた。いろいろ演出があ
り,まあまあ遊べた0しかし,ムーンブレ
イドを取らずにソア(最後の敵)を倒して
しまい,啞然とした。石川洋 (16) 愛知県
94 Oh! X 1991.2.
►凄まじいまでのグラフィックと役に立た
ない金。いまいちの難易度。やたら派手な
魔法と いい, 行方不明のライ麦パンと いい,
なかなか面白い (5 番目のリングはどこに
ある?)。 井上和也 (21) 福岡県
►キャラクターが大きいのはいい。しかし,
なんのための剣の振りかわからない。もう
少し ズームには がんばってほしい。そう思
いませんか。それにジャンプもひどい0
米倉正人(23> 長野県
►先日,侍ちに侍った「ラグ’ーン」をやっ
た。感想はひと言,「あっけな L . 」であ
る0前作の「ジェノサイド」が“超”難し
かったため,このギャップの大きさにびっ
くりしている c 普通にブレイしていれば1
日で終わることも可能だ。もっと長く遊べ
ることを期侍していたのですが……。グラ
フィックや音楽はきれいでしたが,あまり
にも簡単すぎたなあ。
山本昭治 (22) 神奈川県
►ビジュアルシーンなどは圧巻で,プレイ
には気合いが必要とされないところがいい。
い。とにかく音楽が気に入った。
羽田茂樹 (20) 愛知県
力の入ったオープニングシーン
AFTER REVIEW
最初のほうのシーン,洞窟のそばで人が •
►魔法は派手だが,見せるだけでたいして
意味がなくてはがゆい。
鈴木克史 (17) 静岡県
►よ〈できたゲームでもたいていなかだる
みのようなものがある。ラグ ーンの 場合の
問題はそのなかだるみがいきなり前半にき
ちゃうことね。後半の盛り上がり方がすご
いと間いてもう一度続きをなってみる気に
なったけど,最初は2匹目の ボスの 前ぐら
いで面倒臭くなってほかのゲームに浮気し
ちゃった。だって,敵(ざこ)は弱いくせ
に無意味にカタイし,進行が単調。ついお
ざなりにプレイすると,死んじやうし。も
ちろんグラフィックがきれいだったし,操
作性も抜群だったけど(多重 スクロールの
通路はおっこちそうでドキッ〉。きっとみん
なもズームだからと信じて先へ進んだんじ
落っこちそうでこわい
ゃな あい? 結果的には話題を集めるだけ
のことはあったと思うんだけど,次は最初
から ハラハラ ドキドキの展開が続く ゲーム
がやりたいよお。 ズームなら! 信じられ
る!? 七瀬由美子(19> 神奈川県
ラダーンの場合,やはりグラフィック,
音楽,そして,オープニングデモやエンデ
ィングがいいという意見が多かったようで
す。しかし,肝心の ゲーム 内容に関しては
賛否両論。演出もすばらしい,という意見
もあれば,問題あり,という意見もありま
した。まあ,やっぱりいちばん多かったの
は,イースなどに似ているという意見か
な? しかし,ほめているにしても,けな
しているにしても,皆さんの ズームに 対す
る期侍はあいかわらず大きいようでした。
X 68000用 5"2 HD 版4枚組 8,800円(税別)
ズーム 0011(613)0191
ミュージックモード発見
長野県にお住まいの松沢宏治さんほか数名の
方からラグーンのミュージックモードへの入り
方についてのお便りをいただきましたので紹介
します。
まず,普通に立ち上げるとデモが始まり,そ
のあとユーザーディスクあるいはシステムディ
スクを要求してきますよね。そこで,データデ
ィスク3を3回以上,2を2回以上入れます c
そして,そのあとシステムディスクを入れると
OK というわけです。
発売中のソフト
★ワールドスタジアム SPS
X 68000 用 5"2 HD 版2枚組8,800円(税別)
★アトミック • ロボキッド システムサコム
X 680 D 0 用 5〃2 HD 版2枚組8,800円(税別)
★ラプラスの魔
エム • エー . シー ハミングバード
X 680 Q 0 用 5"2 HD 版3枚組8,700円(税別)
★ Magical Shot M . N.M Software
X 680 Q 0 用 5"2 HD 版7,800円(税別)
★サークレジェンドスペシャル マキシマ
X 680 Q 0 用 5"2 HD 版4枚組8,800円(税別)
★スライス M . N.M Software
X 680 D 0 用 5〃2 HD 版7,800円(税別)
★大航海時代 光栄
XB 8000 用 5〃2 HD 版2枚組9,800円(税別)
★ KLAX ハドソン
X 680 ()D 用 5"2 HD 版7,700円(税別)
★プール•オブ • レイデイアンス
ボニーキヤニオン
Xlturbo 用 5"2 D 版5枚組9,800円(税別)
新作情報
★ D 〜欧州®気楼〜 ウルフ•チーム
X 6 8 000 用 5〃 2 HD 版 3 枚組 12 J 00 円(税別)
★ RYU 〜哭きの竜より〜 ウルフ • チーム
X 68000 用
5"2 HD 版11,600円(税別)
★DRAKKHEN
EPIC/SONY RECORDS
X 68000 用
5"2 HD 版価格未定
★アルガーナ
M . N.M Software
X 68000 用
5〃2 HD 版6,800円(税別)
★ Misty Vol .7
データウエスト
Xlturbo 用
5〃2 D 版5,000円(税別)
X 68000 用
5〃2 HD 版 5,0 D 0 円(税別)
★マーブルマッ
ド ネス ホ ームデータ
X 68 Q 00 用
5"2 HD 版価格未定
★ファンタジー IV スタークラフト
X 68 Q 00 用
5"2 HD 版9,800円(税別)
★中華大仙
シャープ
X 68000 用
5"2 HD 版
価格未定
★エイリアンシンドロ
ーム 電波新聞社
X 68 Q 00 用
5〃2 HD 版
価格未定
★プリンス • オブ • ペルシャ
ブロダーバンドジャパン
X 68000 用
5"2 HD 版
価格未定
★パロディウスだ1
コナミ
X 68 Q 00 用
5"2 HD 版
価格未定
★生中継68 コナミ
X 68000 用
5"2 HD 版
価格未定
★遥かなるオーガスタティーアンドイーソフト
X 68000 用 5"2 HD 版2枚組12,8(]0円(税別)
★ノスタルジア タケル
X 6800 D 用 5"2 HD 版11,8110円(税別)
★ブラックレインボウ ホビージャパン
X 6800 D 用 5〃2 HD 版8,800円(税別)
★ボンバーマン システムソフト
X 680 DD 用 5〃2 HD 版7,800円(税別)
THE S 0 FT 0 UCH
95
大人のための X 的1100
FIXER ver.4.0
Ogikubo Kei づ ■」■
先月はちょいとばかり時事ネタを扱った
ので,今月は馬場ネタを扱う。大腿部骨折
だそうである。アナウンサーが選手生命に
影響云々をいっていた力す,選手として戦っ
ていたこと自体,選手生命を縮めていたよ
うなものだったから,いまさらなにをかい
わんや,である。
なんて話はどうでもいい。
そういえば,かの NTT が12月1日から
ANGEL LINE を始めた。エンジェルであ
る。恥ずかしい名前だ。遊人の ANGEL にで
もあやかろうとしたのだろう力、(なににあ
やかるんだか)。
先立って ANGEL NOTE なる恥ずかし
い名前で紫という恥ずかしい色の機械を無
料貸し出ししたそうた^ ANGEL NOTE っ
てのは ANGEL LINE へアクセスするため
の単なる端末である。それ以上でも以下で
もない。
いい忘れたが , ANGEL LINEt いうの
は NTT が始めたパソコン通信を利用した
電話番号検索システムである。ただ,アク
セスには ANGEL LINE 専用の通信ソフト
を使うことになっている。そのソフトだ力す,
PC -9801, J - 310 0, AX など MS - DOS マシン
用はあるのだが, X 68000 用はない。いつも
のこととはいえ, X 68000 用はない。 XI も
MZ もない。
じゃあダメかというと,なんのことはな
くて, パソコンと モデムとそんじよそこい
らに転がっている通信ソフトがあれば誰に
でも利用できるのだ。
ちなみに,電話番号は0190 -104104 という
変な番号0プロトコルに閨しては,1200/
2400 bps というなんの変哲もないものだ。
が。ひとつ問題があるとすれば,全角文字
のコードが新 JIS なの だ。シフ ト新 JIS ではな
くて,ただの新 JIS 。 ソフトが対応していれ
ばまったくもって,気にすることはない。
96 Oh!X 1991.2.
どうしてシフト JIS じやないのかなあ。ホス
卜側の機械のせいだろうか。
まあ,いいや。それにしても,104が機械
の声になって,有料化したと思ったら,今
度はバソコン通信で番号案内ときたもんだ。
私はあの,機械の声の104は苦手で苦手で。
知らない人のため f こいっておくと, いまの
104はかけるとお姉さんが出て,こっちが言
ったところの番号を探してくれるのだが,
見つけたら,「はい,どうぞ」とかいって,
機械の声が延々と電話番号を繰り返し言い
続けるのだ。おお,不気味。さっさと電話
を切れば いいの だが,最初からテープが回
っている天気予報や時報ならともかく,始
めは人の声なのに唐突にテープか 1 C か知
らないが機械の声になって,相手がしゃべ
りつづけているなか,受話器を置くという
のは非常にいやな気分がする。
というわけで , ANGEL LINE は便利だ。
人間相手より融通はきかないが,こちらも
機械的に応対できるから気が楽。企業か,
官公庁か,個人か,フリーダイヤルかで選
ベる。ただ,プライバシーの問題か,「個人
は5件,それ以外は50件に絞られたときに」
表示してくれるそうで,ありふれた名前だ
ったりすると,かなり細かいところまで入
れてやらないとだめ。また,電話帳に載っ
ている人しかだめだから(当たり前)私の
電話番号は検索できるが(ついでに住所ま
で! ) ,街でナンパした女の子なんかは電話
帳に載せてないケースが多いので,たぶん
だめだろう。あ,いっておくけど,私は「荻
窪圭」なんて名で載っているわけではない
ので,探さないように。
所在地がある程度絞れないとだめな点を
除いて,もうあの電話帳はいらないという
メリットは大きい。料金は3分10円で,深
夜23時以降は4分10円と,すばやく探せば
1件30円の有料化104より安いのも魅力だ。
[第5回]
今月の「大人のための X68000」 は新しい
FEP「FIXER ver.Oj の話。 ASK が
気に入っている人もいれば,不満点があり
ながらもしかたなく ASK を使っている人
もいるでしょやはりどんなものにち選
択の余地というのは存在すべ吉ですよね。
モデムを持っている人はお試しあれ(詳し
くは NTT に聞いてください)。
ちなみに,私は NTT の回し者ではない
ぞ。ただ,面白いと思ったから紹介しただ
けなのだ。誤解しないように。私の基本姿
勢は 「 NTT は諸悪の根源で,人のコミュニ
ケー シヨン 願望に つけ 込んだ商売をしてい
て,あの前時代的な電話料金体系は人々を
馬鹿にしている」というものだ。
さて,この調子で JR が時刻表をパソコン
通信で検索できるようにしてくれると,と
てもありがたいな。それいけ, JR 。
ああ,関係ない話でこんなに行を稼いで
しまった。
FIXER ver.4.0 が来た
と,先々月の予告どおりに Kamikaze の
第3弾をお送りする予定だったのだが,突
如届いた1本のソフトのおかげで,またもや
予定が狂ってしまった。
その届いたソフトがこの FIXER 。 今回の
「大人のための X 68000」 は FIXERver .4.0
のレビューだ0
待っていた人は待っていた。だって ASK
って馬鹿なんだもん。しょっちゅう同じ間
違いを犯すし,何度教え込んでも文法解析
が変なのかなんなのか,“浅い”って打ちた
いのに,“浅井”が最初の候補になるくらい
だから。 FIXER も最初は“浅井”だった
が, 2度目からはちゃんと戋い’’になっ
た。当たり前だけど,偉い。
編集部にこの FIXER が到着して最初に
驚いたのが,「ちゃんと学習する」ことだっ
た。というより,学習するとはこういうこ
とをいうの力、,っていう感心だ。
たとえば,「庭に埴輪鶏がいる」ってなっ
ても,「庭には二羽鶏がいる」って一度学習
させてやると,「庭には二羽鶏がいる」って
ならなかったけれど, 2度学習させたら,
なった。すごいすごい。
えっと,これは単語の学習と文節内の学
習と,文節区切り学習など多くの学習をす
る関係だと思う。庭には二羽鶏がいる。う
一ん,完璧。
この賢さは触ってみないとわからないの
だが, ASK はもちろんのこと, AT 0 K 7 より
も VJE -0 よりも賢いのは確かだ,といって
いいのではないだろうか。もっとも,ある
程度学習させてからの話だ。
FIXER のキー配置
そんな FIXERAT が,日本語 FEP の善し悪
しは変換効率だけで決まるのではない。た
とえば,操作性であり,ファイルの大きさ
であり,アプリケーションとの相性だ。ま
ず,操作性から見ていこう。
一応 ASK に準じたキー配置をうたって
いるが,本当にそうだろう力、。
結論からいぉう。そうではない。
1) XF 1, XF 2, XF 3 キーについてはシフト
ともども似ているが,候補がなくなると自
動的に文節を伸長してくれるなどめんくら
うこともある。スペースが次候補してくれ
ないのも異なる点だ
2) XF 4 に関してはさらに異なる。一度押
すごとに,かな一►カナ—*カナ(半角)を繰
り返すのだ
3) ASK では(たいていの FEP はそうだ
が)変換中に次の文字を入力すると,未5萑
定文字列は確定され,新し〈入力した文字
が変換対象になる。 FIXER では確定するキ
一を押さないかぎりどんどん未確定文字列
が増えていく ( MAX 80 文字)
4) ASK ver .2.0 はある程度キ ーコン フイ
ギュレー ション可能だった。 FIXER ではキ
ーコンフィギュレーションを 変えることは
できない。ファンクションキーの役割も固
定だ ( CTRL + F キーに収まっている)
5) CTRL ファンクション がまったく効か
ない。困った 。 CTRL ファンクションを 使い
まくるどころか,ホーム ポジションから 指
を 離さずに変換できるよう設定している私
は,非常に困る。 CTRL + うんちゃらは,み
な全文節確定とされてしまう。思わず
CTRL+H を 押して,泣いたことがある。改
良していただけるとうれしい
まあ,慣れの問題かもしれない。
ASK にはなかった機能もいくつかある。
6) CTRL + XF 2, XF 3, XF 4, XF 5 の4つ。
CTRL + XF 2 が記号入力。これがまたすご
い。 JIS コード.000から部首が登録してあ
り,部首変換ができるのだ 。 CTRL + XF 3,
XF 4, XF 5 はそれぞれ,かな,ローマ字,
CAPS LOCK の ON / OFF になっている
7) SHIFT + ESC 。 これは直前に変換した
文字列を再変換するというキーである。確
定直後のみ効く UNDO 技だ
以上が, ASK とは異なる操作性だ。が,
まだまだ言葉ではいいづらい違いがいろい
ろある。
8) ローマ字に変換できない読みのとき,
ASK だとアルファベットのまま残してく
れたが ( WP などを除く), FIXER はそうい
うことをしてくれない
9) カーソル 位置変換にしたとき,変換作
業の結果(文節伸長)が カーソル 位置に反
映されないのは変だ
こうやって比べてみると, ASK より使い
づらそうだが,それは ASK に慣れているか
らで, FIXER にしてみれば,ただ XF キーに
対応しただけにすぎないのだろう。しかも,
その ASK への慣れというのも,けっこう
ASK の使いづらさをごまかすための対症
療法だったりするので, FIXER に文句をい
うのは筋違いなものもありそうだ。
ただし,客観的に見て,次の点は許しが
たいものがある。いくら賢くてもこれでは
使う気にならない,というユーザーもいる
だろう。
a . CTRL フアンクシヨンカ ?
確定キーになること。コンフ
ィグできるほうがいいのだが,
だめだとしても,
•あら力、じめ CTRL + H ,
CTRL + M とカーソル移動く
らいは CTRL ファンクシヨン
に割り当て,あとのキーは押
してもなにも起こらないよう
にする
•もしだめなら, CTRL ファ
ンクシヨンを一切受けつけな
いようにする
b . カーソル位置変換にした
とき,変換作業は反映されな
いケースがある。これは困る。
カーソル 位置 エコーに した意味がない
このあたりに対するバグフイクス,じや
なくてバージョンアップを早急にしてほし
いと思う。
ファイル,辞書の比較
賢いと聞くと,さぞやメモリを食うだろ
う,と思うのが人情。そこで,以下の表を
ご覧く AT さい。
ファイルサイズ表
FEP 本体標準システム 65 K バイト
スモール システム 63 K > ヾ 'イト
辞書 標準 816 K バイト
ミドル 636 K バイト
スモール 454 K バイト
FEP 本体である。 FIXER . SYS と
FIXERS . SYS がある力 ? ,これは後者が機能
縮小版である。といっても, カーソル 位置
での変換力 5 'できないだけのようだ。どちら
にしろ, ASK よりずっと小さく感じるが,
実は気のせいだったりして, FIXER のほう
が,若干メモリを多く占有するようだ。た
だし, FIXER は辞書バッファの大きさを指
定することができるため,その値によって
大きく占有メモリは変わる。
辞書はもうとんでもな〈大きい。が,小
さい辞書もあるので,辞書ドライブの具合
によっては,そちらを使う手もあるた^ろう<
辞書メンテナンスは ASK についてくる
DICM より使いやすいため,自分の辞書を
作るのは楽だ。このレビューは大きな辞書
で書いている。
図®
大人のための X 68000 97
ヒジユアルシェル
ED
WP
Communication PRO
CARD PRO
Kamikaze
Hyperword
CyberNote PRO
Z'sSTAFF PRO
Music PRO
CANVAS PRO
SX-WINDOW
Magic Palette
File Processer
microEMACS
Muterm
EXDISP=EXTEND EXDISP=NQRMAL
なお,この辞書は ASK 同様,読みに記号
も使えるし,単語に半角文字も登録できる
ので,なんでも登録できて便利だ。
FIXER の辞書は郵便番号も持っている
が,これはすべて“/+番号”という読みで
登録されている。
コンフィギュレーション
さて,図1が FIXER の コン フイグフ アイ .
ルだ o ASK 2.0 より項目が少ないが,これは
キーコン フイ ギュレーショ ンができないか
らにすぎない。
重要なのは, EXDISP だ。 EXTEND か
NORMAL かで大きく変わる。それは次の
項を読めばわかる。
ちなみに, SPEED は高速にすると速くな
るが,変換効率は落ちる。確かに,通常速
度では遅いと感じることもあるが, ASK の
ように辞書を延々と読みにいくことはない
ので許せる。
PERIOD は句読点変換。
学習機能も3種類選べるが,自動的に学
習するモードだと変換のたびに学習してく
れる。 ASK のように FEP を ON / OFF する
たびに学習結果を書きにいって,待たされ
ることもない。
動かないアブ ! J
さて,いろいろと賢くて気に入っている
FIXER だが,問題点があったりする。それ
は図2の表を見れば一目瞭然だ。
左から,アプリケーション名,コンフィ
ギュ レーションフアイルの EXDISP =
図1コンフィギュレーションファイル
EXTEND のときの動作, NORMAL のとき
の動作だ。とりあえず調べたのはこれだけ
だ。
実に動かないアプリケーションが多い。
EXDISP は NORMAL にしよう 。 EXTEND
だと「変換ウインドウを下に開〈アプリケ
ーションのときに表示がおかしくなる」の
だ。
それでもワープロ系ソフトと Kamikaze
はだめだった。 SX - WINDOW はまったく
だめというわけではなく,変換ウインドウ
は開くのだが,動作がおかしくなる。どち
らがおかしいのかはわからない力す,どちら
かのバグかもしれない。 VS . X では問題なく
動くことだし。
WP . X はまったくだめ。 Kamikaze も変
換モードにいってもくれない 。 Hyperword
にいたっては, 「 ASK バージョン2が組み込
まれていません」といって,立ち上がって
もくれない。
DOS の世界では,日本語 FEP に対応する
のはアプリケーションの仕事なので,
FIXER が悪いというのも酷だが,ワープロ
系ソフトが全滅というのは痛い。早く FIXER
対応になってもらいたいものである。
FIXER を使って
いま FIXER を使っているのだが,変換効
率だけはやたらといいので,学習さえさせ
てしまえば,非常に気が楽だ。なんといっ
ても,句読点変換をしていて腹が立たない
のだ。逐次自動変換でも
腹が立たない。これはす
ごいことだと思う。使う
ときは,辞書先読み連文節変換&句読点変
換で,学習優先モードがいい。さすがに逐
次自動変換はちよっと怖いからだ。
ただ, X 68000 の設計の問題で無理なのか
もしれないが, ローマ字 入力の際,かな—
アルフアベ ツト変換がほしかったと思う。
私などが書くこういった文章には英単語が
頻出するので, いちいちローマ字の ON /
OFF はしたくないのだ。
そういうわけで, Hyperword が好きな私
も,今回だけはあきらめて microEMACS を
使っていたりする。
気持ちは「頑張れ FIXER !」だ。 PC -9801
ユーザーは NEC の MS-DOS についてくる
NEC AI 変換を使ったりはしない。使いに
くいからだ。 Mac ユーザーは,漢字 TALK
についてく る 2.0 変換を使ったりはしない。
使いものにならないからだ。 DynaBook ユ
ーザーは ATOK 7 を使う。辞書を ROM に持
ってい るからだ。 X 68000 ユーザーは ASK
を使う。ほかにないからだ。
X 68000 ユーザーだって,賢い FEP を使
いたい。!:りあえずは,表にある FIXER が
動作しないアプリケーシヨンを FIXER 対
応にしてもらって,それからだ。
少なくとも私は, ASK から FIXER に乗
り換える心の準備とハードデイスタの準備
はしているぞ。早いうちにここであげつら
った欠点を直してもらいたい。
いつもやっているので,またあてになら
ない予告をしておくと,来月は確定申告に
X 68000 を使う話でもするとしよう。
図2対応アプリケーション
* I :変換位置がずれる。
*2 : 変換はするが表示されない。
*3: 表示はいいが、変換されない。
なお, microEMACS, Muterm は市販品ではない。
項目
コメント
BUFFRS= 1 〜 249
辞害バッファ。ひとつ 2K バイト
DIC= 辞害のファイル名
LEARN = AUT0/MANUAL/0FF
学習モード
STYLE = N0RMAL/READ/AUT0
変換方式。 AUT0 が逐次自動変換
PERIOD = 0N/0FF
句読点変換
PRIORI 7Y=LEARN/MEAN
学習結果と意味解析の優先順位
CHARA = ZEN/HAN
INPUT = N0RMAL/HR0MA/KR0MA/HIRA/KATA
CTRL + XFI 時の入カモード
C0DE= HEX/KUTEN
SPEED = NORMAL/HIGH
変換速度
MODE: SCREEN/LINE
変換位置
BSCHR= 1/2
CAPS= 0N/0FF
FKEY= 0N/0FF
EXDISP=EXTEND/NORMAL
N0RMAU こしておくべき
〇〇〇〇〇 X X 〇〇〇〇 XO 〇〇〇
丨 2 I 2
#***
00 〇 x o x xO 〇〇〇 x 〇〇〇 x
98 Oh! X 1991.2.
•特集 2 SX - WINDOW プログラミング
SX 個 DOW
SX - WINDOW 上のアブリケーシヨンを作成する
ための第一歩は SX システムの仕組みとさまざまな
作法を知ることでしよう。また実際のプログラムは,
S X システムがサボートするサブルーチン S X コー
ルを利用することで実現されます。前回の特集では
このあたりの概念とアセンブラによるプログラミン
グへの導入を行いました。解説のもとになる資料は
先月の付録ディスク「謹賀新年 PRO - B 8 KJ に収録
されています (169 ページを参照)。
さて, SX - WINDOW 用プログラムの開発環境と
してはアセンブラまたは C 言語が中心になると考え
られます。そこで今回は,前回の解説をもとに XC
ver. 2.0 でプログラミングを行5場合について見て
いくことにしましよう。また,あわせてウィンドウ
上のプログラムで皆さんの関心が高いと思われるグ
ラフマネージャの使い方を解説します。基本的な図
形の表示をもとに理解を深めてください。
特集 2 SX - WINDOW プログラミング
ウインドウプログラミングへの道 (2)
CSI 吾によるプログラ5ング
SX-WINDOW 上のプログラムを作成するための基礎知識とし
Murata Toshiyuki 村田敏幸 て, SX システムのしくみを解説し,同時にアセンブラによる基
本的なプログラミングの作法を示しました。今回は前回の話を
ベースに C 言語で開発を行う場合について解説しましょう。
先月に引き続き, SX - WINDOW プログ
ラミングの基礎編です。今回は C 言語によ
るプログラムの 作り方を解説し,さっと切
り上げます。用語などにつきましては,適
宜,前回の記事を参照してください。また,
C で プログラム 開発を行うた めの 道具とし
て , XC ver .2.0 と先月号の付録ディスク
に収録されていたヘッダファイルと C 用の
ライブラリを用意してください。
なお,不本意ながら,この記事は XCVer .
2.0 のみの使用を前提に進めます。先月号の
付録ディスタで配布されたヘッダファイル,
ライブラリ KXC Ver .2.0 用で,少なくと
も, XCVer .1.0, ないしは, gcc + XCVer .
1.0 のライブラリでは使えません。また,
gcc+XC Ver .2.0 のライブラリでの開発は
メモリ不足で,ほとんど実用にならないで
しよう。2 M バイトのメインメモリでは,
あとで示す小さなサンプルプログラムをコ
ンパイルするのが精一杯です(当然,
ASK 68 K など不要なデバイスドライバは
すべて外していますし, MAKE も使ってい
ませんが)。
原因は, SX - WINDOW 用のヘッダファ
イ ルの 中で,多くのデータ型•関数が一括
して定義•宣言されているためです。へッ
ダがマネージャ別に分割してあり,必要な
も のだけをイン クルー ドできるよう になっ
ていれば,おそら 〈 gcc も利用でき, XC を
使うときにもコンパイル時間が短縮される
のですが。
さっそく環境作りを
では, SX - WINDOW の開発キットを C
プロダラミング環境に取り込んでおきまし
ょう。先月号の付録ディスクを展開して得
られた4枚目のディスク中, ¥ SX¥INCL
UDE にあるヘッダフアイル SXLIB . H ,
SXDEF . H を XC 標準のへッダファイルを
収めたデイレクトリに, ¥ SX ¥ LIB にある
_ ライブラリファイル SXLIB . A と
MAINR .0 を XC のライブラリと同じデイ
レクトリに,それぞれ, コピーし ます〇ま
た, ¥ SX ¥ TOOL にある4本のファイル中,
少なくとも WDB . X は, パスの 通った適当
なディレクトリに置いておきます(デ ィス
クにゆとりがあるようでしたら残りの.3本
も一緒に転送しておきましょう)。
さらに, CONFIG . SYS にも注意を向けま
す。メモリの増設具合にもよりますが,
FSX . X を CONFIG . SYS で組み込んでしま
うと, コンパイル 時の フリーエリアが 十分
確保できない可能性があります。 FSX . X は
動作試験時など必要なときにのみ組み込み,
用がすんだらすかさず外すようにします。
動作試験といえば, SX シェルが起動時に
無条件に G - RAM を初期化するのを忘れて
はいけません。 G - RAM を RAM ディスタに
して,その上で開発を進めていたりすると,
動作試験を行った瞬間に RAM ディスタ 中
のファイルがみんな消えてしまいます。 G -
RAM は RAM ディスタと しては使わない
ようにするか, せいぜい テンポラリ デイス
クとして使うにとどめましょう。もっとも,
SX シェルが G - RAM を初期化するのに利
用して いる IOCS コール 90 H の G _ CLR_ON
を殺してしまう技もないではありませんが
(どこかで,そんな公開ソフトを見掛けた
ことがあるような気もします)。
先月のサンプルを。で書き直す
作業環境さえ整えれば,もうすぐにでも
SX - WINDOW プログラミングにとりかか
ることができます。プログラムの構造その
ものは,先月お話ししたアセンブリ言語の
場合となんら変わりありません。というわ
けで,さっそくですが,サンプルプログラ
ムをリスト1,そのコンパイル用のバッチ
ファイルをリスト2に示します0リスト1
は,先月,ァセンブリ言語で書いた
WINTEST . S を C で書き直したもので,両
者の動作はまったく同じです(なんてった
って,ハンドデイスコンパイルしたんです
から)。ウィンドウを開き,適当に文字列を
表示します。
以下,プログラムの各部を順に見ていき
ます力 ? ,スペースの都合もあり,余り詳し
くは説明できませんので,足りない部分は
リスト中のコメントと,先月のアセンブリ
言語版の解説で補って〈ださい。
•大域変数の定義 (46 〜51行)
このプログラムはリエントラントに書い
てあります。先月も触れたように,ブログ
ラムをリエントラントに書いておくと,同
時に複数起動するときでも,プログラムの
コード自体はメモリ上にただひとつあれば
すみます。同じプログラムをいくつもメモ
リに置く必要がない分,メモリの使用量を
抑えることができるというわけです。メモ
リは貴重な資源ですから, SX-WINDOW
上では“プログラムはリエントラントに作
る”のが基本です。
リエントラントに書かれたプログラムで
は,プログラムの実行コードだけではなく,
静的に宣言された変数も複数のタスクから
共用されることになります。各タスクに固
有の変数は,必ず auto 変数として,スタッ
ク上に用意しなければなりません。
ここで, C の言語仕様上の問題が顔を出
します。どうやって大域変数を実現するか
という問題です。リエントラントに書くた
めには,関数の外部で変数を宣言するわけ
にはいきませんし,といって, auto 変数は
ひとつの関数内でしか参照できない局所的
な変数です。 C ではスタック上に用意した
変数を複数の関数から直接参照する手段が
用意されていません。
ひとつの解決策がリストの46〜51行です。
“本当は関数の外で定義したかった変数”
をみんなひっくるめて構造体でくくり,
GVAL という名前のデータ型として
typedef してあります。そして,ず一っと
下,メインルーチン内の291行で,この型を
もったデータオブジェクトを実際にスタッ
ク上に確保し,以下,関数呼び出しのとき
には,この構造体へのポインタを関数へ渡
してやるようにします(たとえば,300行の
100 Oh! X 1991.2.
ように)。呼び出された関数側では,この構
造体へのポインタに“一>”演算子を適用
することで,個々の“疑似大域変数”にア
クセスできるというわけです。
なお,こうして実現した“疑似大域変数”
は,あくまで, auto 構造体ですから,明確
な初期化 (291 〜294行)を行わない限り,
初期値は不定です。ふつうの大域変数感覚
で初期化をサボると,ときに,プログラム
が異常動作することになります。
• メインルーチン (289 〜325行)
アセンブリ言語で SX - WINDOW 用プロ
グラムを書いたときには, COMMAND.X
から直接起動する場合と, SX シエル上で起
動する場合との2つのエントリを用意し,
それぞれ,ある程度の初期化動作を行う必
要がありました。しかし, C の場合は,こ
のあたりの決まりきった処理はスタートア
ップルーチン ( C プログラムに必ずリンク
され,諸々の初期化を行うモジュール)が
肩代りしてくれます。関数 main では純粋に
プログラム自身の初期化(ウィンドウを開
くとか,変数を初期化するとか)から始め
ればよいのです。リスト1では,300行でウ
ィンドウを開く関数 init を呼び出し,エラ
—なくウインドウが開けたら,イベントド
リブン型プログラムの特徴的なメインルー
プ (304 〜324行)になだれ込んでいます。
•初期化部 (80 〜108行)
初期化部分には,わずかにアセンブリ言
語版と異なる点があります c 84行と86行が
C 使用時特有の処理です。
84行では, TSSetAbort により,ハードウ
エアエラーにより中断された場合の処理関
数を登録しています 0 この TSSetAbort は
SX コールで はなく, C 独自の関数です。
先月のアセンブリ言語版では SX コール
TSEvent Avail を呼び出したときに,その
戻り値を調べ, エラー の有無を調べたわけ
ですが,ライブラリ関数 TSEventAvail は
関数内部でこの ハー ドウエア エラーを 調べ,
エラー 時には TSSetAbort で指定された関
数に自動的に制御を移します 。 TSSet
Abort は2つの引数をとります。第1引数
は中断時に実行される関数へのポインタで
す。また,第2引数はその中断時処理関数
に渡される引数です。通常,例の“疑似大
域変数”へのポインタを指定することにな
るでしょう。
86行では TSGetTdb により,82行で用意
した task 構造体に g 分自身のタスク管理ブ
ロックを読み込んでいます。これは,続く
89行の TSTakeParam に渡す “ argv に展開
される前のコマンドライン文字列”を得る
ためです (コマンド ライン文字列はタスク
管理ブロック中に格納されています)。アセ
ンブリ言語 レベルで なら,タスク起動時に
a 2 レジスタで 渡 された コマン ドライン文
字列がそのまま利用できるのですが, C で
はここでやったような回りくどい手段をと
る必要があるのでした(実はもう少し深い
意味があるのですが,端折ります)。
89行以降は,先月のアセンブリ言語版と
変わりありません0ウィンドウを開くとき
の常套手段です。89〜95行でウィンドウの
表示位置を決め,98〜99行の WMOpen によ
ってウインドウを作成します 。 WMOpen
は,ウィンドウが作成できた場合には作成
したウインドウのウインドウ構造体へのポ
インタを,また,メモリ不足などの理由で
作成に失敗したときには NULL を返しま
す。 NULL が返った場合には,もうどうし
ようもありませんから,メインルーチンに
戻って,そのまま終了です。うまくオーブ
ンできた場合は,必要に応じてウィンドウ
の細かな初期化を行います。
既存のデスクアクセサリの多くでは,こ
こで描画色や背景色などの設定を行ってい
ます。もっとも,ウィンドウを開いたとき
に,描画色は黒(正確には少し違うけどパ
ス),背景色は明るいグレーというように,
かなり都合よく初期化されますから,リス
卜1ではばっさり省略してあります。
•マウス左ボタンダウンイベント発生時の処
理 (113 〜141行)
マウスの左ボタンはアクティブウインド
ウの切り替えやウィンドウの移動.拡大に
使うよう決められているボタンですから,
ここで,ウィンドウに対する操作の大部分
を処理します。ほとんど決まりきった手順
ですから,多くの場面でリスト1がそのま
ま利用できるでしょう。基本的なウィンド
ウ操作以外のプログラム独自の処理が必要
な場合には,133行以下の switch の中に,
case W _ ININSIDE :
処理
break ;
のような形で ウイン ドウ パー トコードに応
じた処理を追加していくことにになります。
•アツ プデートイ ベン ト発生時の処理
(230 〜251行)
アップデートイベントについては,先月
も触れましたが,若干言葉が足りなかった
ようですので,この場で補足します。
下敷きになっていたウィンドウが上にな
り,いままでほかの ウインドウで 隠されて
いた部分が見えるようになった場合,ウイ
ンドウマネージャは新たに見えるようにな
った領域を,対応するウィンドウのアップ
デートリージョンにつけ加えます。イベン
トマネージャはほかに重要なイベントがな
い場合に,各ウィンドウのアップデートリ
ージョンを調べ,もし空でなければ,画面
再描画の必要ありと判断して,該当ウィン
ドウにアップデートイベントを送ります。
アップデートイベント発生時の処理手順
は次のようになります。
1) そもそもイベントが自分に向けられた
ものかどうか調べる (233 行)。そうでなけ
ればなにもしない。
2) WMUpdate を呼び出し,以後の描画が
アップデートリージョンでクリッピン グさ
れるようにする (235 行)。
3) 画面を描き直す前に,必ず , GMSetGraph
を使って,_分をカレントグラフにする
(238 行)。
4) 実際に画面を描き直す(リスト1では,
146〜228行の下位関数で実際の描画を行っ
ている)。すでにアップデートすべき範囲で
クリッピングしてあるから,何も考えずに
全画面を描き直してよい。
5) 再描画がすんだら, WMUpdtOver を
呼び出し, WMUpdate 呼び出し前のクリッ
ピング範囲に戻す (248 行)〇
ここで,もし,アップデートリージョン
以外の領域も同時に描き直したい場合には,
次のいずれかの方法をとります。
1) WMUpdate 呼び出しに先立って,
WMAddRect や WMA 如 Rgn を使って,再
描画したい領域をアップデートリージョン
に加えておく。
•2) WMUpdate 呼び出し後に , WMCli
pRect や WMSetClip によりクリッピング
範囲を再設定する。
3) WMUpdate を呼び出す前,あるいは,
WMUpdtOver を呼び出したあとに不足部
分を描画する(リスト1ではこの方法でグ
口ーボックスを描いています)。
どの場合にも, WMUpdate と WMUpdt
Over は必ず呼び出さなければなりません。
これらのコールにより,アップデートリー
ジョンが空になり,“イベントマネージャが
アップデートずみだと判断できるようにな
る’’からです。これらコールを呼び出さな
い限り,イベントマネージャは永久にアッ
プデートイベントを発行し続けることにな
り,プログラムが止まってしまいます。
•アクティべ一トイベント発生時の処理
(256 〜265行)
アクテイべ一トイベントはウインドウが
アクティブになったときに,最優先で発行
されます。たとえば,ウインドウを新たに
特集 c 言語によるプログラミング 101
開いたときや, WMSelect で自分のウィン
ドウをアクティブにしたときには,その直
後にアクティべートイベントが発行される
ことになります。
ここでやるべきことは,“自分がいまアク
ティブかどうかを内部のフラグに覚えてお
く”ことだけです。既存のデスクアクセサ
リの中には,“自分がアクティブかどうかの
フラグ’’を WMSelect を実行したときなど
にも更新している場合があるようですが,
フラグの更新は,アクティべートイベント
発生時に一括して行えば十分です。
_タスクマネージャからのイベント発生時の
(270 〜284行)
タスタマネージャからのイベントの具体
的な指示内容は,イベントを取得したとき
にイベントレコードの what 2 フイールドに
格納されていますから,その内容に応じ,
switch で処理を振り分けます。リスト1で
は,どんなプログラムでもサポートしなけ
ればならない最低限のイベントのみを処理
対象にしています。
•終了時の処理 (61 〜67行)
ウィンドウを閉じ,終了しているだけで
す。本来, SX - WINDOW 上のタスクは
TSExit で終了するのですが, SX - WIN -
DOW 用 C ライブラリには TSExit はなく,
ふつうどおりに exit を使う約束になってい
ます。
注意すべ吉ポイント
最後に, C で SX - WINDOW 上のプログ
ラムを作る際の注意点を挙げておきます。
•メモリ消費を抑えるために,スタックサ
イズとヒープ ( SX - WINDOW のヒープで
はなく, malloc で確保して使う C のヒー
プ)サイズはなるべく小さ〈とる。
XC では,特に指定しないとスタックとヒ
ープにそれぞれ 64 K バイトのメモリを確保
します。 2 M バイト程度のメインメモリで
SX シェルを使っているときに計 128 K バイ
卜 ものメモリを占有するのはほとんど犯罪
行為ですから,/ Gs ,/ Gh の各スイツチで,必
要な分だけ確保するようにしましょう。ス
タックを小さくすることに不安があるので
あれば,スタックチェックのコードの生成
を指定する/ Gc スイッチをつけてコンパイ
ルし,スタックがあふれていないかどうか
確認するようにします。なお,スタックサ
イズ,ヒープサイズの最小値は,それぞれ,
4 K バィト,8 K バィトです。
• 画面への出力には C 標準関数ではなく,
SX - WINDOW のライブラリを使う。
いまのところ, printf などの C 関数は SX
- WINDOW に対応していません。もし,
printf に相当する処理を行いたい場合には,
sprintf で一度 char 型の配列に出力文字列
を作成し,その後, GMDrawStrZ で表示す
る,といった細工が必要です。
• C の低レベル I / O 関数はなるべく使わな
い0
クリーナーの関係で, SX - WINDOW 上
でのファイル I / O には, DOS コールではな
く, SX コールを使う約束になっています0
一応,基本的な入出力は一般的な C プログ
ラムと同じ手順で行えるよう, SXLIB . A 中
には SX コールに対応した open と close が用
意されてはいます力 ? (これらは間接的に
fopen , fclose からも呼び出されます),ファ
イルの属性を取得•設定するとか,ファイ
ルを消去すると力%ディレクトリ中から特
定ファイルを検索するといった関数に対し
てはなんの配慮もありません。これらの処
理が必要なときには,タスクマ4、ージャの
SX コールから同等のものを探してきて置
き換える必要があります(たとえば,
remove — TSDeleteP というように)。
• ( C の)ヒープのサイズを変更する関数は
使用できない。
SX - WINDOW 上の C プログラムでは,
( C の) ヒープは ( SX - WINDOW の) ヒー
プ上に確保されます。そのため, sbrk や
bldmem といった ヒ ープを拡張する関数は
使できません。ヒープが足りなくなった
ら勝手に sbrk するように malloc を改造し
てい.る人も多いと思います力 5 ', SX-WIN
DOW 上では通用しませんから注意してく
リス ト1 WINTEST.C
ださい。
•リエントラントなプログラムでは, C ラ
イブラリ関数内の静的ワークにも配慮する。
C の関数の中には,内部に静的なワーク
を持っているものがあります。たとえば,
fopen などで使われるファイル構造体の配
列とか, malloc などで使われる ( C の)ヒ
ープ管理用ポインタ, strtok 内の小規模な
ワークなどです。リエントラントなプログ
ラムでは,これらの目に見えないワークも
複数のタスクで共有されます。
SX - WINDOW では,さほど厳密な意味
でのリエントラントさは要求されませんか
ら,内部にワークをもったライブラリ関数
が即使用不可というわけではありませんが
( TSEventAvail を呼び出すまでは,ほか
のタスクが同じライブラリ関数を使用する
ことはありえないから安全),ワークの競合
には一応気をつけなければなりません。
致命的な例としては fcloseall があります。
fcloseall によりファイルを全部まとめてク
ローズしようなんてことをすると,コード
を共有する全タスクのファイルがまとめて
閉じられてしまうのです。
•リエントラントなプログラムでは,オー
プンできるファイルの数や,使用できる (C
の)ヒープ領域がいつもより少ないことを
計算にいれる。
上で述べたことともダブりますが,リエ
ントラントなプログラムではファイル構造
体を格納しておくライブラリの内部ワーク
や, ( C の)ヒープも,複数のタスクで共用
されます 0 自分はまだ, malloc を1度も呼
び出していないのに,すでにヒープに空き
がないという事態も起こりうるわけです。
再三, SX - WINDOW 上ではプログラムは
可能なかぎりリエントラントに作るようい
ってきましたが,この制限を回避するため
には,リエントラントに作ることを諦める
しかありません。
氺
以上, C による SX - WINDOW プログラ
ミングの基本部分について,簡単にまとめ
てみました。
2
3
6
7
8
9
10
11
12
13
14
ウィンドウを閧いて文字を表示する
>/
♦define NULL ( ( void *)0)
#include <stdlib.h>
#undef __POINT_T / *point_t 型を間連いなく long 型と等価にする呪文本 /
^include <axlib.h>
typedef enum { FALSE, TRUE, ) BOOLEAN :
fdefine G_PLAIN 0 /* ブレーンな書体 零 /
/* x , y 座標から point_t 型を作るマクロ */
♦define Pt(x , y) ( ( point_t )( ( point_t )(x) << 16 | ( short )(y)))
102 Oh! X 1991.2.
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
WDEFID
WINOPT
WIMOPTLOW
WINDEFID
WINH
WINV
WINSIZE
WIKTITLE
*/
♦define WDEFID
♦define WINOPT
♦define WINOPTLOW
tdefine WINDEFID•
♦define WINH
参 define WINV
攀 define WINSIZE
♦define WINTITLE
WI_STD
(WC_GBOX | WC_GBOXON )
(WINOPT & Oxf )
(WDEFID << 4 | WINOPTLOW )
208
160
Pt( WINH, WINV )
((LASCII « )"¥x08untitled"
/* イベントマスク
♦define EVENTMASK
V
EM_MSLDOWN|EM_UPDATEI EM ACTIVATE IEM_SYSTEM1IEM_SYSTEM2
GMSetGraph( gp->winptr );
WMDrawGBox( gp->winptr };
return ( TRUE ) :
/*
マウス左ボタンダウンイペントの処理
*/
void mouseLdown_event( GVAL 拿 gp )
t
window twtemp;
/* デバッグ用シェルを起動するためのコマンドラ
char _sxkernelcorarat] = "sxwdb.x -D -K";
拿本拿拿尊/
/*
本/
終了時処理
void term( GVAL *gp, int retval)
if ( gp->winptr != NULL )
WMDispose( gp->winptr );
exit( retval) :
/* ウィンドウをオーブンしているのなら */
/» ウィンドウを破棄する */
/* 終了コードをもって掃る */
/*
エラーによる中断時処理 ( TSSetAbort で登錄する
*/
void myabort( int dummy, GVAL 本 gp )
{
tern< gp, EXIT_FAILURE );
/*
初期化(ウィンドウオーブン〉
*/
BOOLEAN init( GVAL *gp )
{
task taskbuf :
TSSetAbort( myabort,(long )gp ) ; /* 中断時処理閫数を登錄する */
TSGetTdb( &taakbuf , -1) ; /* タスク管理ブロックを得る */
/* ウィンドウの表示位置を決める */
if ( ( TSTakeParam( &taskbuf.command,
4«p->winaize, NULL, 0, NULL, NULL ) & 1)==0 ) {
*( point_t * >( 4gp->winsize.left )
=< point_t )TSGetWindowPo8 ();
*( point_t * )( &gp->win8ize•right )
=•( point_t * )( &gp->win8ize.left ) + WINSIZE ;
)
/* ウィンドウをオーブンする */
if ( ( gp->winptr = WMOpen( NULL, &gp->winsize, WINTITLE, TRUE,
WINDEFID, ( window * )-1,TRUE, TSGetID() ) ) r= NULL ) {
return ( FALSE ) ; /* オーブンできなかった */
} else (
gp-> winptr->wOpt ion = WINOPT ; ウインドウオプションを投定する */
/* データエリア(大城変数)
typedef struct {
window *winptr;
BOOLEAN activeflag;
rect winsize;
tsevent eventrec;
]GVAL :
/* point_t 型を x , y に分けるマクロ */
^define PtX(p) ( ( short )( (p) >> 16 ))
tdefine PtY(p) ( ( short ) (p ))
#if 0
/* 別案(こっちは変数専用)*/
tdefine _PtX(pJ ( *( short 本 )
fdefine _PtY(p) ( M ( short » J&(pl + 1))
#endif
/* ボタンが押された位置が自分のウィンドウかどうか拥ベる */
/* (自分のウィンドウ上でなければなにもせずに戻る)拿 /
if i ( window 〇 gp->eventree.whom == gp->winptr ) {
TSGetEvent ( EVENTMASK, &gp->eventrec ) ; / ♦ このイベントを取り ( If? く 尊 /
&
り
>あ
ウス
ドク
ンツト
ィボツ
ウービ
準口4
C グ位
ID ンン
数3 m 卜卜さル
閱シシ ID ツツき 卜
義ブブ義ドド大ィ
定オオ定横縱の夕
ウヴヴヴヴヴヴヴ
t I
n c
is
o A
PL
数数
\ ン、 \ ンンンンン
ウウ -D ヴヴヴクウ
寧 _
グ n
»/ラレ
タフト
ンのン
イかベ
ボぅイ
のどの
へか</用
体ブ S ヤ
造 v 位ジ
構テの一
ウクウネ
ド. T ドマ
ンがンク
イ分イス
ウ自ウタ
本本拿本
/ / / /
ら
か
て
し
に*/
フ <
ラ描
グを
トス
ンク >/
レツ了
カボ充
を一化
分口期
自グ初
$ $ $
/ / /
特集 c 言語によるプログラミング 103
/* あとの処理をウィンドウマネージャにまかせて ♦/
/* ウィンドウ内のどこでボタンが押されたのかという
switch ( SXCallWindM( gp->winptr , &gp->eventrec
case W_INCLOSE : /» ク ローズポ
tern>( gp, EXIT_SUCCESS ) ; / 拿タスクを終
break;
default :
break;
/*
アップデートイペントの処理
/* 文宇の大きさを 8x8 ドットから 32x32 ドット
/*1文字表示を繰り返す(文字は横に並べる
for ( size = Pt( 8 , 8 ) ; size <= Pt( 32,
GMFontSize( size ) : / 零フ
GMDrawChar( * も , M /» 1
/t (
void te8t3( void )
{
point_t size, poa;
文字の大きさを 64x8 ド
/* 1文字表示を繰り返す
for ( size = Pt( 64, 8
size += Pt( 0,1)
GMFontSize( size )
GMMove( pos );
GMDrawChar( ,み , )
void test4( void )
QMFontFace( G_PLAIN );
GMFontKind( G_ROM24 ) :
/* 標準の害体
/*24 ドットフオント */
*/
void test 1 (int fontkind, point_t fontsize, point_t pos, point_t feed
GMFontKind( fontkind );
GMFontSize( fontsize );
GMFontFace( G_PLAIN );
GMMove( poa );
GMDrawStrZ( ..標準 < plain),•
pos += feed;
GMFontFace( G_BOLD );
GMMove( poa };
GMDrawStrZ( ..強綢 ( bold).. ) ;
pos += feed ;
GMFontFace( G.ITALIC );
GMMove( poa };
GMDrawStrZ( ..斜体 ( italic > .,);
pos += feed ;
GMFontFace( G_ULINK ) :
GMMove( poa );
QMDrawStrZ( ' ,下 * H under 1 ine )..);
pos += feed ;
GMFontFace( G_OLINE ) :
GMMove( poa ) :
GMDrawStrZ( "袋文字 ( outl ine J ") ;
pos += feed :
GMFontFace{ Q_SHADOW );
GMMove( poa >;
QMDrawStrZ( •• 彩つき (ahadow 厂 ’ > ;
pos += feed ;
QMFontFaqet G_ITALIC|G_SHADOW );
GMMove < pos );
QMDrawStrZ( "組み合わせたりもして
/* フォントの種錤をセツト*/
/* フォントの大きさをセツト*/
/»ふつうの害体*/
/* ペン座標=表示開始位置を指定*/
/* 文字列を表示*/
つぎの表示に備えて*/
/* ペン座檷を進める(改行に相当〉*/
パ以下,岡様*/
void teat2( void )
(
point_t size ;
GMFontFace( Q_PLA1N );
GMFontKind( Q_ROM24 );
GMMove( Pt( 4 , 380 ));
標準の書体*/
/♦24 ドットフォン M/
パペン位置 =(4,380)*/
GMFontFace( G_PLAIN );
GMFontKind( G_ROM24 >;
GMFontSize( Pt(128,128 )
GMMove( Pt( 220, 160 ));
GMDrawChar( 1 «');
/* 標準の塞体で*/
/*24 ドツトフオントを*/
/*128 xl 28 に大して*/
座標 (220,160) に <7
/* 1文字表示する*/
if ( ! gp->activef Lag ) ( /* いまアクティブてなければ本/
WMSelect 丨 gp->winptr ); /* 自分のウィンドウをアクティブにする •/
/»タイトルバーがドラッグされた?*/
if < WMFind ( ( point_t ) gp -> eventrec . whom 2, &wtemp ) != W_INDRAG
i | EMLStilll ) == 0 )
return ; /* そうでなければ即戻る*/
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
ti*
合
*/ 場
ぅた
らつ
もだ
け上</
だースる
報 >クす
情 > ッ了
しむ
»/1卜遒
6 t ( ッ分
が P セ字
な+=を 文
せ,,,ズ1
さ iz ィ */ は
化 g サ示 B
*); 卜表位
で*/2ン字ン
ま >3 才 文べ
8
2
" 4 ,
66
が t (
な P
せ<=
さ e
化 1 Z
* a
で/);
**4(
、ベ0
ks 4
8並<
X 2 に pt
64纊一-
らは 3
か字 PO
卜文丨
{セ
丨を*/
>ズ定
>ィ指«/
VI
■ 表
a ン位宇
. Y ( オン文
フぺ1
104 Oh!X 1991.2.
► 1 月号のハガキの質問を見て,僕は狭い部屋の畳いっぱいに 12 冊の Oh!X を並べ, 1 時間
ずっと本の間を行ったり来たりして,やっと順番を決めた。しかし, Oh!X の 1 月号を见て
いて,ふと170ページで手が止まった。私の苦労っていったい? 横山诚 (18) 群馬県
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
void update_event( GVAL *gp )
パ自分のウインドウかどうか調べる*/
if ( ( window 本) gp->eventrec.whom == gp->winptr ) {
/* アップデート 開 始* /
WMUpdate ( gp->winptr ); /* クリッピングリージョンと 本/
”アップデートリージョンを一致させる*/
GMSetGraph ( ( graph * ) gp->winptr I; 自分をカレントグラフにする*/
/* 文字を拡大 • 縮小 表示したりして 遊ぶ*/
testl ( G_ROM 16, Pt( 16,16 ) , Pt( 4 , 4 ) , 20 );
testl( G_ROM12, Pt(12,12 ) , Pt{ 220, 4 ) , 20 ); '
testl(G_ROM24, Pt( 24, 24 し Pt{ 4, 160 ), 28 );
test2();
test3 ();
test4 ();
WMUpdtOver( gp->winptr ) ; / 本クリッピングリージョンを元に戻す*/
WMDrawGBox ( gp->winptr ); /* グロー ボックスを描く*/
アクティペートイペントの処理
*/
void activate_event( GVAL *gp )
{
/* アクティブになったのが自分だったら*/
if ( ( window 零 > gp->eventrec.whom == gp->winptr )
gp->activeflag = TRUE ; /* フラグを ON にする本/
ハアクティブになったのがほかのタスクだったら*/
else if ( ( window 本 > gp->eventree.whom != NULL )
gp->activeflag = FALSE ; フラグを OFF ( こする木 /
タスクマネージャからのイぺ
拿/
void syatem_event( GVAL <gp )
、の 処理
/* イベントレコードの what2 で指定される指示に従い処理を振り分ける*/
switch ( gp->eventrec.what2 )'
case ENDTSK:
case CLOSEALL :
terra( gp, EXIT_SUCCESS ]
break ;
case WINDOWSELECT :
WMSelect( gp->winptr };
break ;
default :
break;
/» タスクを終了しろ ! 拿/
/* ウィンドウを閉じろ! */
/* はい,はい*/
/* ウィンドウをアクティブにしろ!》/
/* ほい,ほい*/
/*
*/
void main( void
メインルーチン
GVAL gval = {
NULL,
FALSE,
};
#if 0
gval.winptr = NULL ;
大城変数の代わり*/
/♦winptr = NULL 本 /
/*activeflag = FALSE*/
gval.activeflag = FALSE;
#endif
if ( !init( &gval))
term( &gval,EXIT_FAILURE
/» ウインドウ構造体へのボインタをクリア*/
/* (ウインドウ未オーブンの印)*/
/* アクティブかどうかのフラグを OFF */
/* 初期化する*/
/* 初期化に失敗したら即終了
/***** メインルーブ“"拿/
for ( ;; ) {
TSEventAvail(EVENTMASK , &gval.eventrec
/* イペントを取得する*/
switch ( gval .eventrec. what ) { /* ィベントの種類に応じて処理を振り分ける*/
case E_MSLDOWN : /* 左ボタンダウンイペント*/
mouseLdown_event { &gval) ;
break ;
case E_UPDATE : / 拿アップデ ー トィベント */
update_event( &gval ) ;
break ;
case E_ACTIVATE : /* アクティべ一トイペント */
activate_event( &gval I;
break ;
case E_SYSTEM1 : タスクマネージャからのイペント*/
case E_SYSTEM2:
system_event( &gval );
break;
default : そのほかのイペント*/
break ;
リスト2 MK . 巳 AT ( f スト1のコンパイル用バッチファイル)
cc /O /G84k /Gh8k wintest.c %1ib%¥ — mainr.o %lib%Vsxlib.a
► 「はてしない物語 j の英語版はひどいです。2色刷りじやないし,ハードカバーじやな
いし,衣紙は写真だし,挙げ句の果てには広告文まで人れているもんなあ(ド版がほしく
なった)。 黑田昌利 (19) 東京都
特集 c 言語によるプログラミング 105
/* SXeyes 、 15 バズルのある
/* ディレクトリ名をに書き込む
str dir$ = "A : ¥SX_SAMPLE¥ n
int fp
int code( 0 ) = { 1024 }
/*
fp = fopen( dir$+"SXeyes.x"
fseek( fp, &H1B44+64, 0 }
fwrite( code,1,fp )
fwrite( code,1,fp )
fclose( fp )
/本
fp = fopen ( dir$ + ” 15 ノくズル . x’|
fseek( fp, &H1A24+64, 0 )
fwrite( code,1,fp )
fwrite( code,1,fp )
fclose( fp )
/*
fp = fopen { dirS+" バス名 • x,
fseek( fp, &H116A+64, 0 )
fwrite( code,1,fp )
fwrite( code,1,fp )
fclose( fp )
]3773c 137778
0013773 C
move . 1
S00137AF4,D0
—
まずはスタックサイズを取り出し
00137742
cmp.1
#$00001000 ,D0
$1000 と脑
00137748
bcc. 8
S001 37750
0013774 A
move.1
#$00001000, D0
*4-
小さけナ U ま $1000 をセットして
00137750
bclr.1
#$0000, DO
00137754
move.1
D0,$ 00137 AF4
和
元の場所に書き込む
0013775 A
move.1
$OO137AF8,D0
4-
ヒープサイズを取り出し
00137760
cmp.1
#$00002000, D0
4-
今度は $2000 と比較
00137766
bcc. s
S0013776E
00137768
move.1
?$00OO200O,D0
—
小さけれ iS 2000 をセットし
001377 BE
add.l
= S(H)O0000D,DC
00137774
be 1r.1
#$0000, D0
00137778
move.1
DO,$00137AF8
和
元の場所へ畨き込む
図 2 e つの数値の実際の使われ方
-1136f.be 136fdc
001 36FBE
move. 1
*S0 000040 0,DO
和
$400 をセヅトし、
00136 FC4
add. 1
SOO1372F4.D0
和
それに先の値を
0G136FCA
add.l
$OO1372F8,D0
—
傾次加えていく
001 36FD0
add.l
S001 38018,00
-4-
(こいつは意味不明
001 36FD6
move.1
D0,-(A7)
—
サイズをスタックに 3
001 36FIJ8
pea
<A1)
和
ハンドルを租んで
00136 FDA
MMSETHANDLESIZE
和
サイズを変更
001 36FDC
addq.1
#8,A7
11 TIM—
目玉を小さくするプログラム!?
Izumi Daisuk 日 泉 大介
1月号付録ディスクの SX - WINDOW 用プログラム SXeyes ,15 パズル,パス名 .X
は,実行時に 140 K バイトものメモリが必要で, 1 M バイトのシステムでは2つ以
上同時に実行するのが困難でした。 patch . bas はこれらにパッチを当て,実行時
に必要なメモリを 30 K バイトにまで小さくするプログラムです0
•使用方法
まず X - BASIC を起動し,リスト1を入力
してください。30行で dir $にセットしてい
るのは, SXeyes . X , 15パズル. X ,パス名.
X の入っているディレクトリ名です0自分の
環境に合わせてディレクトリ名はセットし直
してください。以下に典型的な手順を示しま
すので, X - BASIC の起動方法がわからない
方は参照してください。
まず,付録ディスクを解凍して得られる DI
SK 3 をドライブ0にセットし,リセットします。
これで VS 2. X が起動します。続いてドライ
ブ1に本体に付厲してきたシステムディスク
(のコピー)を挿入してください。 BASIC 2 と
書かれたアイコンがありますね。これをダブ
ルクリックすると, X - BASIC のディレクト
リが開きます。この中に BASIC . X という名
前のファイルアイコンがあります0これをダ
ブルクリックすると X - BASIC 力 ? 起動します。
X - BASIC が起動したらリスト1を入力し
ます。「10/* . j と1行入力したらリタ
—ンキーを押してください。これでプログラ
ムが登録されます。同じ要領でプログラムの
続きを1行ずつ順に入力していきます。なお,
最初の2行 (10 ……,20……の2行)はプロ
グラムの注釈行ですので,入力しなくてもか
まいません。また,3番目の行はこの操作を
想定して作成してあるので書き換える必要は
ありません。
リスト1パッチ当てプログラム
プログラムの入力が終わったら,間違いが
ないか十分チェックしてください。特に fsee
k があるところは入念に。ここを間違えると
ディスタの解凍からやり®:す羽目に陥ります。
チェックして OK ならプログラムを実行し
ます。 r runj と入力してください。すぐに
実行は終了します0これで2つのファイルの
実行時に必要なメモリは小さくなりました。
1 M バイトの SX-WIN DOW でも,数個の目
玉がマ ウスカーソルを追い かける不気味さを
体験することができます。
•パッチ当てプログラムの理論
これらのサンプルプログラムは,スタック
として 64 K バイト,ヒープとして 64 K バイト
のメモリがデフオルトで用意されます。つま
り起動するだけで単純に 128 K バイトものメ
モリが持っていかれてしまうのです。目玉が
140 K バイトものメモリを喰ってしまう原因
はここにあります。これをなんとかすれば目
玉を小さくできるはずです。
そう考えて SXeyes . X を テ、、 バッガで視いて
みると,図1のような部分がありました。プロ
グラム内の特定の場所からデータを取り出し
てチェックし,再び同じ場所に戻しています。
参照している$ 137 AF 4, $ 137 AF 8 の2つの
アドレスには,$10000つまり 64 K バイトがセッ
卜されており,いかにも怪しそうです0サンプル
プログラムにはシンボル テーブル がないので窗
信がもてず, SX -WIN DOW 用の簡中.なプログ
ラムを作ってデバッガで黽いてみると,同じ处
理を行っている部分がありました。こちらには
_ STACK , _ HEAP というシンボルが
ふってあり間違いなさそうです。
あとは参照している2つのアドレスの,プ
ログラム先頭からのオフセットを出し,そこ
に適豳な値を: a ••き込むだけで ok です。こうし
て作ったのがリスト1のプログラムです。リ
スト1では1024を_ STACK , _ HEAP
に書き込んでいます。実行時には図1の部分
でスタックは 4 K バイト,ヒープは 8 K バイトに
セットし直されます。これで 128 K バイトを12
K バイトにまで小さくすること力すできました。
_ STACK , _ HEAP の値は,図2
のように使われています。メモリマンに要求
して確保したヒープのサイズを変更するとき
に使用するようです。 3番目に加えている数
値は意味不明ですが,おそらく親プロセスの
環境変数エリァのサイズではないかと思いま
す。時間がなく,これは詳しく追いかけるこ
とができませんでした。
スタック.ヒープサイズを勝手に変更して
しまって大丈夫なのだろうかという不安が残
りますが,私が動作チェックをした範囲では
問題なく動いています。いずれもヒープを使
用するプログラムとは思えませんし, 4 K バイ
卜のスタックサイズを使い尽くしてしまうよ
うな処理も行っているようには見えません。
どうぞ,目玉を i 満喫してく AT さい。
図1 SXeyes . X をデバッガで逆アセンブルしてみた例
00000000000000000000000
1234 5 678901234567890123
11111111112222
106 Oh! X 1991.2.
特集 2 SX - WINDOW プログラミング
C 言語で使うグラフマネージャ基礎
GRAPHMAN を使ってみよう
ウィンドウ上のグラフィック表示を一手に引き受けるのがグラ
フマンです0ここでは,レクタングル,リージヨンといつた独
Izumi Daisuke 泉大介 特の表現を使うグラフマンそのものの理解を目指して,ウィン
ドウとは切り離した解説を行ってみましよう。
SX - WINDOW でのプログラム作りが
ボチボチ!:スタートしました。先月の付録
ディスク ( DISK 4) で提供されたドキュ
メントとリファレンスは,これまで闇の中
でひたすら光明を求めていた私のような一
般 ューザーせ もアプリ ケーシヨ ン作りの道
を拓いて <れたのです。とはいっても,リ
フアレンろ もドキュメントも,わかる人の
ために書かれているといった感が強く,ウ
ィンドウプログラミングの経験がない大方
の背さんは相変わらずの手探り状態が続い
ていることでしよう(私とて同じで,リセ
ットスイッチを使ったのは, Z 80 のアセン
プリ言語を使い始めたとき以来です)。
SX - WINDOW 上で動くアプリケーシ
ヨンは,それぞれがひとつのタスクと見な
されタスク マンの 管理下に置かれるという
ことは,先月の特集,そして今月の村田氏
の記事でもおわかりいただけると思います。
意地の悪い言い方をすれば,タスク マンに
首根っこを押さえつけられてもがいている
わけです。これまでのように,メモリは全
部俺のもの,画面も全部俺のもの。スクロ
ールが遅い? ラスタスクロールしちや
え!といった自由奔放なプログラムは許
されません。お行儀よくタスク マンに 「な
にかイベントは起きましたでしようか」と
お伺いをたて,画面上に同時に開いている
であろうほかのウィンドウの迷惑にならな
いよ•う,そして一緒に動いているほかの夕
スクの迷惑にならないように,プログラム
を作らなければならないのです。
それが作法というものさ,とドキ ュメン
卜を読んでいた私の目は,グラフマンのド
キ ュメント ではたと止まります。 「いろい
ろ撤えたね ぇ。 な〜んだ文字はプロポーシ
ヨナルじやないのか」と流し読みしていた
私の目に,「グラフマンの初期化。グラフ
マンを SX - WINDOW 以外で使用するた
めには……」という文が映ったのです。そ
ういえば, GRSAMP . X は SX - シェルを
起動せずに動いていたな。思い出しました。
TSHELL . X などは SXWDB . X をまず起
動し,それから動いていたのに , GRSA
MP . X はいきなり画面にグラフィックを
表示しました。 SXWDB . X や SXWIN.X
から起動したときには, COMMAND . X
を SX - WINDOW から起動したときと同
じように SX - WINDOW を抜けてから動
き始めました。ドキュメントから察するに,
どうやらグラフィックライブラリとして使
えるようなのです。
これならウィンドウプログラミングの経
験も,パワーの有無も閨係ありません。私
にもなんとかなりそうです 。 IOCS コール
のグラフィッ クルー チンは基本的なものば
かりでしたが,こちらにはちょっと面白そ
うなものも入っていて遊べそうです。
ドキュメントによると,グラフマンを使
うには,
1) メモリマンを初期化
2) グラフマンを初期化
3) 描画
4) 終了(特になにもしなくていい)
という手順で OK のようです。ただこれに
は但し書きがついていて,
「スーパーバイザのスタックは十分に用意
すること。なかにはワークに 10 K バイトほ
ど使うものがある」
とあります。
さて, C で作成したプログラムは通常ュ
ーザー モードで動きます。これを スーパー
パ、イザ モードに切り替えるのは SUPER と
いう DOS コール用の関数です。この関数
を実行すると,それまでの ューザー スタッ
クが スーパーバイザ スタックとして使用さ
れるようになります。 C で作ったプロダラ
ムでは,通常 (ューザーが 特に指定しない
限り) ューザー スタックは 64 K バイ ト確保
されていますから,上の但し書きはクリア
したものと思っていいでしよう。こうして
スーパーバイザ モー ドにしたあとはひたす
ら突っ走り,最後に ユーザー モードに戻し
て終了するというアプローチで大丈夫です。
では手順のほうをもう少し詳しく見ていき
ましよう。
•メモリマンを初期化
メモリ マンは ヒープを管理し,要求があ
ればヒープからメモリを切り出して分けて
くれます O malloc の SX - WINDOW 版なわ
けですね。 malloc と違うのは,要求された
大きさのメモリを確保できなければ,内部
でデータを詰め詰めにしてメモリを確保し
ようとしてくれることです。「ゲゲッ,確保
したメモリのア ドレスが 変わってしまうの
か」という心配はご無用。 malloc で返さ
れるのは 「void *」 ですが,メモリ マン
が返すのはいわば 「void **」です。つ
まり , 「void *」を入れた アドレス (こっち
は固定)を返してくれるわけです。このあ
たりは先月村田氏が図解してくれました力 5 ',
あとで C 言語的に少し解説する予定です。
メモリ マンの 初期化とは,「ヒープ領域
はここからここまでね」とメモリ マンに宣
言することにほかなりません。 SX-WIN
DOW ( SXKERNEL , SXWDB , SXWI
N ) を 使っているときには システムが 勝手
にやってくれます力 5 ', グラフマンを 単独で
使おうというときには自分でやらなければ
ならないのです 0 これは malloc でメモリ
を 確保し,それをメモリ マン 用のヒープと
するのが簡単に実現できそうです。
•グラフマンの初期化
グラフマンは描画を graph 構造体を参照
しながら行います。したがってここでは gr
aph 構造体の初期化も同時に行う必要があ
ります。グラフマン自身の初期化は GMIni
tialize 関数で, graph 構造体の初期化は G
MOpenGraph 関数で行います 。 GMInitial
ize のほうは呼び出すだけ , GMOpenGrap
h のほうは graph 構造体を用意して,そのア
ドレス と テキス ト画面にするかグラフ イッ
ク画面も使うかを引数として渡すだけです。
•描画 • 終了
描画はこれからいくつでもサンプルが出
てくるでしようから,ここで取り上げなく
特集 GRAPHMAN を使ってみよう 107
てもいいでしよう。終了処理はなにもしな
くていいとのことなので,素直にそれを信
じることにします。 GRSAMP . S でもな
にもやっていないので,きっと大丈夫なの
でしよう。
最初は GRSAMP . S の真似っ子
なにもないところからいきなりプログラ
ムを作り始めるのは大変です。まずは付録
ディスク についてきた GRSAMP . S を 参
考に, C 言語で作り直してみたのがリスト
1です。大域変数は大域変数のままに,変
数名も変えずに作ってありますので(ただ
し場所はフアイル先頭へ移しました)見比
ベてみてください。
_大域変数の宣言
最初に# define しているのは,メモリマ
ンに渡すメモリサイズです。 GRSAMP .
S にならって 128 K バイトをヒープとして渡
しています。続く # ifdef は GCC ユーザー
への配慮です。 GCC でコンパイルすると
malloc 用のヒープ領域は 64 K バイトに設
定されてしまい, XC のライブラリにある
malloc では 64 K 以上のメモリを確保でき
ません。メモリマンには 128 K バイト渡す
つもりですから,ここでど〜んと 200 K バ
イトのヒープを取るように指示しています。
巷に出回っている UNIX ライブラリをご利
用の方は削除してください。
続いて GRSAMP . S にあった大域変数
を宣言しています 。 t _ graph は GMOpen
Graph 関数に渡すための graph 構造体 , s
cr _ rect は画面全部を意味するレクタング
ル , r _ rect と r _ oval はかどの丸い四角形
(四円形と勝手に命名)を表現するレクタ
ングルと楕円,そして ppat はペンのパタ
ーンです。 ppat は四円形を描くときに指
定される市松模様のペンデータです。残念
ながらこの部分は問題があるようで,四円
形の枠を市松模様にすることはできません。
•メモリマンの初期化
そしてプログラムはメインルーチン へと
なだれ込みます。最初の予定どぉりまずス
ーパーバイザモードに移行。次にメモリマ
ンのヒープ用メモリを malloc したら,メ
モリマンの初期化です。ヒープ領域の先頭
アドレス,最終アドレス,一度に確保され
るマスタポインタの数 ( GRSAMP . S に
ならって100),エラー処理ルーチンのアド
レス(別に指定しなくてもいいらしい),
ブロックコンテンツの初期化フラグを引数
リスト1 GRSAMP . S を C 言語で
に MMHeapInit を呼び出します。
•グラフマンの初期化
次はグラフマンの初期イ匕です 。 GMIniti
alize で初期化し , t _ graph をテキスト画
面として初期化します。
•画面の塗り潰し
あとは絵を描いていくだけです。まずは
背景色による画面の塗り潰しです 。 GMB
ackColor 関数を使って背景色をセットし
ます。ここでセットしている G_BLACK
は SXDEF . H で定義されていて,黒を指
示します。続いて ペン モードのセットです。
ペン モードは,色の指定と描画 ルールの 2
つの値を加えて指示します。色指定には,
1)
G —
一 FORE
:前景色
2)
G 一
_BACK
:背景色
3)
G _
_PPAT
:ペンパターンで
4)
G _
一 EPAT
:披張ノヽ°ターンで
の4つが,
描画ルールには,
1)
G _
_PSET
:指定色で
2)
G _
_AND
:指定色と
描画面の AND
3)
G 一
一 OR
:同 OR
4)
G 一
一 XOR
:同 XOR
5)
G _
—NPSET
:指定色の反転
6)
G 一
一 NAND
:指定色の反転と
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# include <stdio.h>
♦include <stdlib.h>
#include <sxlib.h>
/* メモリマンに渡すメモリサイズを定義 */
#define HeapSize 0x20000
/* GNU C ではヒープが 64K にされるので、
それを 200K に変更する */
#ifdef ― GNUC __
asm( ".xdef _HEAP_SIZE") ;
asra< "_HEAP_SIZE equ 204800 " );
tendif
/* ブロトタイブ宣 g.*/
int SUPERS int );
/* graph 用 バッファ*/
graph t_graph;
/* 画面全体を示す rectangle
rect 8cr_rect = { 0 , 0 , 768, 512 };
/* round rectangle に外接する rectangle と
round rectangle のかをの oval */
rect r_rect = { 400, 20, 600,120 };
point_t r_oval=0X000F00OF ;
/* pen のノぺターン (C == XI 100, 3 == X0011)*/
unsigned short ppatt 16 ] = {
0XCCCC, OxCCCC, 0x3333, 0x3333,
0xCCCC, 0xCCCC, 0x3333, 0x3333,
0XCCCC, OxCCCC, 0x3333, 0x3333,
OxCCCC, OxCCCC, 0x3333, 0x3333
/*
* メイン■チン(これしかない)
*/
void nain()
I
int ssp ; /* ssp 保存用*/
char *mem8tart; /* heap のスタートアドレス本/
Heap *heap ; /* heaped* 保判娜拿/
/* スーハ•ーバイザ級域に移®*/
SBp = SUPER( 0 ) ;
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
malloc によってヒープ用のメモリを確保 */
if (( memstart = (char *) raalloc ( HeapSize )) == NULL )
fprintf ( stderr , "no enough memory for heap ¥ n ");
exit (1);
)
メモリマン OWf 匕 */
heap = MMHeapInit ( memstart ,
(char *) (memstart + 0 x 20000 >,
100, NULL , 0 );
if ( heap == 0 ) {
fprintf ( stderr , "mm : can 1 1 create heap ¥ n ");
exit (1);
)
GMInitialize();
GMOpenGraph( G_TXT,
&t_graph
!fk v/
画面 _ り潰し(背景色を使用)*/
GMBackColor( G_BLACK ) ;
GMPenMode( G_BACK + G„PSET
GMFillRect( &acr_ _rect );
/* 本/
/* ペンモード */
/* り潰し*/
練の描画(前雜を使用)*/
GMForeColor( G_WHITE ) ; /*
GMPenMode( G_FORE + G_PSET ); /*
GMPenSize( 0x00010001); ) 本ペン
GMMove( 0x00100010 ); /% <0x10,0x10} にペンを棚零 /
/* (0x100,0x100 ) まで練を弓
拉最色12^本/
ペンモード設定
ベンサイス縱
GMLine( 0x01000100 ) ;
引く*/
/* 四円形の枠を描画(ペンパターンを使用)*/
GMForeColor( G WHITE ) ;
GMBackColor( G_DGRAY >;
GMPenMode( G_PPAT + G_PSET );
GMPenPat( ppat );
GMPenSize( 0x00040004 ) :
GMFrameRRect( 4r_rect, r_oval
/* <ASCIIZ> 热 l ) を獅
GMForeColor( G_BLACK );
GMBackColor( G こ WHITE );
GMFontKind( G_ROM24 );
GMFontFace( G_ITALIC + G_OLINE
GMFontMode( G_PSET );
GMFontSize( 0x00300030 );
/*
/» ペン f 一^^本/
/* ペンパターン肢定本/
ハペンサイズ拉定 V
); /* 四円形を描く*/
GMMove( 0x00400120 ) ;
GMDrawStrZ( "abedefg"
ユーザモード復帰 */
SUPER( ssp ) ;
/*
/*
/♦フオ
; /*
/本表示:
/* 符サ •
*/
*/
オント雌*/
*/
*/
芦サイズ*/
) :
/* (0x40,0x120 > にペンを ^® 拿 /
/本文^*^*/
108 Oh! X 1991.2.
図 1 レクタングルの組成と scr_rec
図2楕円と四円形の組成
レクタングル構造体
struct rectangle {
short left;
short top;
short right;
short bottom;
}
(0, 0) <- left top
right bottom
1
(768, 512)
scr_rec. Ieft= = 0
scr_rec. top= = 0 左上,右下の座
scr_rec. right = =768 標を与える
scr_rec. bottom ==512
I . 楕円は point—t で指定
2. 四円形はレクタングルと楕円で指定
描画面の AND
7) G—NOR :同 OR
8) , G—NXOR :同 XOR
以下65536色モード(未サポート)用
9)
G _
一 ADD
: 2 色を加える
10)
G -
_ADDLIM
:同上(最大値付)
11)
G ~
一 SUB
:描画面から
指定色を引く
12)
G _
_SUBLIM
:同上(最小値付)
13)
G _
一 SELMAX
:大きい色を選ぶ
14)
G :
一 SELMIN
:小さい色を選ぶ
15)
G _
_BLEND
:混ぜ合わせる
の15が SXDEF . H で定義されています。
ここで使っているのは G_BACK + G _
PSET ですから,背景色での描画となりま
す。ここでひとつ注意があります。先月の
DISK 4 に入っていた SXDEF.H では,4
です〇そして GMPenSize でペンの大きさ
を指定します。引数は 0 x 00010001 と16進8
桁になっています。前半の4桁が X 方向の
大きさ,後半の4桁が Y 方向の大きさです。
ここで GMPenSize の引数について補足
しておきましよう。 SXLIB . H にある GM
PenSize のプロトタイプ宣言を見てみると,
int GM Pen Size ( point _ t .);
となっています。 SXDEF.H によると poi
nt_t は,
union {
point p ;
long x_y :
}
だと定義されています。そして point は,
struct {
short x ;
short y ;
}
と定義されています。つまり point_t は,
long (4 バイトの整数)としても, short
+ short (2 バイトの整数2つ)としても
扱うことができるようになっているのです。
座標を,
point — t pt ;
pt . x _ y = 0 x 00100100 ;
と一気に指定してしまうことも可能ですし,
pt . p.x +=10 ;
のように, X 座標だけをあとから変更する
ことも可能です(もっともこれは, short
+ short と long がコンパイラによって同じ
サイズに割り当てられる場合だけです。現
行の たいていの コンパイラで先のプログラ
ムは正しく処理されることが期侍できます
つの色指定が,
# define G — FORE $000
のように定義されています。このままでは
コンパイルで きませんので,
# define G — FORE 0 x 000
と,$を Ox に変更してください。ペンモ
ードを設定したら, GMFillRect でレクタ
ングルの塗り潰しを行います。
籲ラインの描画
次は前景色を使ったラインの描画です。
前景の色を GMForeColor でセツトし,先
ほどと同じように GMPenMode でペンモ
—ドをセツトします。今度は前景色を使い
ますからモードは G FORE + G PSET
図3 point _ t を2通りに使う
pt
1
1
!
1
pt. p. X
pt. p. y
Pt- x_y
# define^. _ POINT._T
を実行したときの point_t
構造体
_P0INT_T を define しな
ければただの long int
図4 line の描画方法
始点にグラフ
イ ック カー ソ
ルを移動し
終点まで線を
引く
4
特集 GRAPHMAN を使ってみよう 109
力 5 ',場合によってはうまくいかない可能性
がないわけではありません。 XC , GCC の
いずれでも先のプログラムは期侍どおりに
動いてくれます)。ただ, point _ t がこの
ような構造を持つのは_ POINT _ T が
定義された場合だけで,それ以外のときは
long となります。このプログラムでは,
# define _ POINT_T
とはしていませんので, GMPenSize には
いきなり整数を引数として渡しています。
ラインの描画は X - BASIC のようにライ
ン両端の座標を指定して行うのではなく,
タートルグラフ イック のように現在のグラ
フィックカーソルの 位置から指定された位
置までラインを描くという方法で行います。
まずは GMMove でグラ フィックカーソル
をライン始点に移動させ,続いて GMLine
でラインを描きます 0 GMMove , GMLine
のいずれの引数も point _ t です。つまり,
ここでは整数です。
•四円形の枠を描く
GRSAMP . S では,四円形はペンパタ
ーンを使って描かれています。ペンパター
ンは X 方向16ドットのデータを16個並べた
もので表現されます。1ドット分のデータ
は0か1で指示され,0ならそのドットを背
景色に,1ならそのドットを前景色にする
という意味になります。つまり X 方向のデ
ータは16ビット (2 バイト : short int ) で
表現され,それが16個集まってパターンデ
ータを形成して いる わけです。リスト1で
グルと,かどの丸みを決める楕円の2つの
データによって決定されます。指定された
レク タングルに四円形は内接し,指定され
た檜円の1/ 4がそれぞれのかどに割り振ら
れるわけです。楕円は point _ t で,上位2
バイトが X 方向の直径を,下位2バイトが
Y 方向の直径を意味しています。 X , Y 両
方向の直径が等しければそれは真円を意味
します。リスト1では r _ rect と r _ oval が
それぞれ レク タングルと楕円のデータです0
実際の描画は,前景色,背景色,ペンモ
ード,ペンパターン,ペンサイズを設定し,
GMFrameRRect 関数で描くだけと簡単
です。一連の決まり切った手続きを踏み,
描画関数を最後に呼び出せばいいわけです。
•文字列の表示
グラフマンが扱う文字列には L ASCII と
ASCIIZ の2種類があります。 LASCII は
文字列の長さが先頭に来る文字列 。 ASCI
IZ は0で終了する文字列です。 LASCII は
文字列の長さを1バイトで表現しますので,
255文字以上の長さの文字列は表現できま
せん。ここは ASCIIZ 文字列を表示するサ
ン プルに なっています0
文字列表示ではいくつかの情報設定が必
要となります。以下にこれらの情報を設定
する関数を挙げます。
1)GMFontKind
表示するフォントを設定します。フォン
卜は G — R 0 M 12, G _ R 0 M 16, G — R 0 M 2
4の3つのフォントを選ぶことができます。
抜きで 48 X 48 ドットに披大して表示します。
文字表示は GMDrawStrZ で,ここでは ab
cdefg と表示しています。
•終了処理
最初に スーパー バイザモードに移行して
いますから,それをユーザーモードに戻し
てプログラムは終了です。
•コンパイル時の注意
コンパイルは XC Ver . 2.0 , GCC Ver .
1.37 で行っています。 XC の Ver .1.0 では
構造体をパラメータとして渡す場合に問題
がありますので,無事コンパイルできても
動かない可能性があります。また,リンカ
は hlk も使用可能です。 Ver .1.6 以降のも
のをお使いください。
リスト1は単独で使用することを前提に
プログラムしてあります。したがって SX
LIB . L あるいは SXLIB.A は, CLIB . L ,
CLIB . A よりあとでリンクされなければ
なりません。 CC あるいは GCC で,コマン
ドラインでライブラリを指定すると CLIB
より先にリンクされてしまいますので,
cc / Gh 200 k /Fc listl.c
gcc -c - fno - defer-pop listl.c
として listl . o をまず作り,それから,
lk listl.o clib . l …… sxlib.l
のようにリンク作業を行う必要があります。
gcc の- fno - defer - pop オプションは,関
数呼び出し時にスタックに積んだ引数を,
呼び出しが終了するたびに取り除くように
する指定です。通常はいくつかまとめて取
は ppat 配列がこのペンデータです。
四円形は,その大きさを決めるレクタン
図 5 ペンパターンの組成
I 10 0 1 10 0 1 100 1 I 00
1100110011001100
0011001100110011
16 個
11001 10011001100
0011001100110011
0011001100110011
か丨を 16 個並べる 0 は背景色で
I は前景色で塗られる。つまり
. _こういうペン
が作れる
(0 か 1)X1 6 = 16 ビット = short int
というわけで,ペンバターンは
short ppat[ 1 6] ;
で表現できる
いわずと知れた ROM 内フォントと IOCS
で作られる12ドツトフオントで, G_ROM
12などは SXDEF . H で定義されています。
2) GMFontFace
文字飾りを設定します。太字 ( G_BO
LD ), イタリック ( G _ ITALIC ), 下線付
( G _ ULINE ), 中抜文字 ( G _ OLINE ),
影付き中抜文字 ( G _ SHADOW ) の5種
類があり,
GMFontFace ( G_BOLD + G—ITA
LIC )
のように足し算して複数の飾りを指定する
ことも可能です。ただし, G _ OLINE と
G _ SHADOW は同時に指定できません。
これらも SXDEF . H で定義されています。
3) GMFontMode
GMPenMode と同じように描画規則を
設定します。
4) GMFontSize
表示する文字の大きさを設定します。引
数は point _ t です。
リスト1は前景色に黒,背景色に白を設
定し,24ドットフォントをイタリックの中
り除〈ようになっていますので , SUPER
を呼び出したときにバスエラーを起こして
しまいます。忘れないようにしてください。
リンク時にライブラリを列挙するのは面
倒なものなので,リスト3のようなメイク
ファイルを作っておくと便利でしよう。こ
れは XC Ver . 2. 0に付属してきた make , x
用のメイクファイルです。これと同じもの
を makefile というファイル名で作成し,
カレントデイレクトリに置いておけば,
make
と入力するだけでコンパイルからリンクま
で自動的に作業が行われます。他のプログ
ラムを作成するときには , 「prog =」 の後
ろのファイル名を変更するだけで OK です。
ライブラリの存在するディレクトリ名は,
皆さんの環境に合わせて書き換えて使って
ください。
なお, gcc を使っている方には悲しいお
知らせがあります。メモリ 2 M バイトでは
このプログラムはコンパイルできません。
どうしても gcc でコンパイルしたい方は,
リスト2のようなヘッダファイルを自分で
110 Oh!X 1991.2.
リスト 3 メイクファイルの例
prog = listl
obj = $(prog).o
lib = ¥
¥lib¥clib.l ¥lib¥floatfnc.1¥
¥lib¥doslib.l¥
¥lib¥iocalib.l¥
¥lib¥sxlib.l
$(prog).x: $(obj)
lk $(obj) $(lib)
X.o: %.c
cc /Gh20Ok /Fc )<
すし,四円形は黄色混じりで表示されます。
この理由は,テキストのパレットが標準の
4色のままになっているからです。 SX —
WINDOW では8色使用することができ,
SXDEF . H で定義されている B_BLACK
などはこの8色モード用の色なのです 。 G
RSAMP . S には SX - WINDOW 用のカラ
一に設定する GMInitPalet の呼び出しと,
テキスト4プレーン全部に描画できるよう
にする GMAPage がありますが,これら
は コメント にして殺されています。
これを考慮してリスト1を作り直したの
がリスト4です0プログラムをすっきりさ
せるため,初期•終了処理を main で行い,
リスト £■ 小さなへッ f ファイル
graph 構造体を使用する描画に関係した处
理は display 関数にまとめました。
初期処理として付け加えたのは,カーソ
ルを消去することとパレットの初期化を行
うことです。このあと diaplay 関数を呼び
出して描画を行ったあと,終了処理に入り
ます。画面の最下行でカーソルを点滅させ
てキー入力を侍ち,テキスト画面をクリア
してパレットを Human 用に再初期化。フ
アン クシ ヨンキーの 再表示を経て ユーザー
モードに戻り終了します。
display 関数では GMAPage 関数を呼び
出して,テキスト4プレーンすべてに描画
できるようにしたほかはリスト1と同じで
/»1ページのハイト K 蓴/
/* 麵麵ぴ親"
It rectangle */
/* 左端の座« */
/* mcry/m */
/» ♦/
/* 下期の座標本/
/* 麵の娜本/
/* Hffi の大きさ*/
/* ペースアドレス》/
/* 横1ラインのバイト数*/
/* 色の混ぜ合わせの牌*/
/* バイト数*/
/* 囲む四角形*/
map 才
/* 思面サイズ*/
/拿播画^-チンテーブル*/
/• 描画 可能 供 城のリージヨン
/* 描 Pf 可能領域のリージヨン
/* 麵 レベル*/
/* 描翻 モード
/* 描 _位**/
/* ペンの太さ*/
/* ペンパターン*/
/* 拡张^ターン*/
/* システムで使用*/
/>システムで使用*/
/* ms 色*/
/* 背最 色*/
/* フォントの本/
/* 飾り 文字の指定 v
/* モード*/
/* :大きさ*/
►)() , int) ;
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
拿
♦ノ
*define
#define
♦define
#define
♦define
♦define
♦define
#define
fdefine
tdefine
#define
♦define
tdefine
#define
tdefine
/*
t
拿/
tdefine
tdefine
♦define
tdefine
/*
拿
拿/
fdefine
tdefine
tdefine
<draw mode>
G_PSET
G_AND
G_OR
Q_XOR
G NPSET
G_NAND
G NOR
G_NXOR
G_ADD
G ADDLIM
G_SUB
G_SUBLIM
G_SELMAX
G_SELMIN
G_BLEND
pen mode
G_FORE
0_BACK
G_PPAT
G_EPAT
<font kind>
参 define
tdefine
参 define
tdefine
♦define
拿
*/
♦define
参 define
tdefine
tdefine
tdefine
/*
拿
窣 /
tdefine
tdefine
tdefine
tdefine
fdefine
tdefine
#define
tdefine
♦define
G_ROM12
G_ROM16
G_ROM24
<font face>
G_BOLD
G_ITALIC
Q_ULINE
G_OLINE
G_SHADOW
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
0x000
0x100
0x200
0x300
1
2
4
8
16
く font face> ビット柄
GB_BOLD
GB_ITALIC
GB_ULINE
GB_OLINE
GB_SHADOW
text color
G_THRU
G_WHITE
G LGRAY
G_DGRAY
Q_BLACK
G_YELLOW
G RED
G_GREEN
0_BLUE
0
8
9
10
11
12
13
14
15
/* 明るいグレー*/
/» 暗いグレー 》/
/* 風*/
/* 黄色*/
/* 赤*/
/* » */
/* 爾 V
作り,
# include < sxiib . h >
のところを,
# include < listl . h >
のよう に 書き換えて コンパイル してくださ
い。 listl.h は listl . c 用のヘッダ ファイル
です。これを使うとフリーエリア 1.3 M バ
イ トで コンパイル 可能となります 0
表示される色がおかしい7
リスト1を コンパイル •実行してみると,
色が変なことに気がつきます。背景は G _
BLACK で塗り潰しているはずなのに白で
typedef struct TBM {
int page;
unsigned short aPage;
J TBM;
typedef struct rect {
short left;
short top;
short right;
short bottom;
} rect;
typedef struct bitmap {
short
broKind;
rect
bmRect;
int
base;
Bhort
line ;
union 1
) opt;
>;
struct
i
unsigned short
TBM tbm;
region {
int
size;
rect
i;
bounds :
long
point_t;
bRatio;
} bitmap;
typedef
typedef struct graph
bitmap
本 bmap;
rect
grRect;
int
♦procs;
region
本拿 visible;
region
拿拿 clipping •,
short
drawLvl;
unsigned
short
penMode;
point_t
point_t
short
penLoc;
penSize;
♦penPat;
short
♦exPat;
short
workKind;
void
拿本 workHdi;
unsigned
short
fgColor;
unsigned
short
bgColor;
short
fontKind;
unsigned
short
fontFace;
unsigned
short
f ontMode;
point_t
fontSize;
)graph;
typedef struct Heap {
1 Heap;
Heap »MMHeapInit<chflLr 拿, char 本 f int
void GMInitialize(void);
int GMOpenGraph(int, graph 拿);
int GMBackColor(int);
int GMPenMode(int);
int GMFillRect(rect
int GMForeColor(int);
int GMPenSize(point_t);
void GMMove(point_t);
int QMLine(point_t);
unsigned short 拿 GMPenPat<unsigned shor
int QMFrameRRect(rect
int GMFontKind(int);
int GMFontFace <int);
int GMFontMode(int);
int GMFontSize(point_t);
int GMDrawStrZ(char 拿};
point_t};
<acreen kind>
♦define G TXT
♦define G QRP
12 3 4 5 6a
^0123
1111
特集 GRAPHMAN を使ってみよう 111
す。 GMAPage は graph 構造体内のデー
夕を変更しますので,まず GMOpenGrap
h で graph 構造体を初期化してから指定し
ます。
これで以後の作業は display 関数内を書
き換えるだ'けで OK となりました。グラフ
マンを使用するプログラムの雛形が完成し
たわけです。
-リージヨンいろいろ
ドキュメントには,レクタングルや楕円,
ラインデータは,
yl xsll xell xsl 2.0 x 7 FFF
y 2 xs 21 xe 21 xs 22.0 x 7 FFF
0 x 7 FFF
という形をしています。これは指定された
Y 座標 y の, X 座標 xs 〜 xe の 間がリージ ョ
ンに含まれていなければ含め,含まれてい
るならば外すことを指示する データ 列です。
設定した状態は,続くライン データに よつ
て変更されるまで有効となります。ライン
データの 最後は,先頭 データで ある Y 座標
•リージヨンを自分で設定する
ドキュメントにはアセンブラで プロ グラ
ムを作成するときのリージョンの表記方法
が付いていますが, C 言語での方法は書い
てありません。ラインデータがいくつつな
がるかわからない以上,アセンブラを使う
ときのように簡単には表記できないのです。
実際 SXDEF . H にある region 構造体の定
義では,ラインデータのないレクトリージ
ョンしか扱えないようになっています。
解決策のその1は,自分で myRegion
などの名前で必要なラインデータが入る大
四円形などでは表現できない複雑な形を表
現する手段として,リージョンが紹介され
ています 0 リージョン ( region ) とは領
域という意味で,表示したい形に外接する
を 0 x 7 FFF にしてす旨示するようになってい
ます。
ドキュメントには例として,四角形が斜
めに2つつながったような形などがありま
きさの構造体を定義し,初期値代入でデー
夕をセットしてしまうことです。ただこれ
は,すべての region 用に構造体を別途用
意して,しかも大域変数とすることを考え
レクタングルと表示の ON / OFF を表現す
るラインデータから成っています。
すね。今度はこれを C 言語でやってみるこ
とにしましよう。
リスト4 SX - WINDOW のパレツトで描画する
るとなかなかにみっともないものです。か
といって, display 関数の局所変数として
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
tinclude <atdlib.h>
tinclude <sxlib.h>
/* メモリマンに 液す メモリサイズを 定義*/
#define HeapSize 0x20000
/* GNU C ではヒープが 64K に設定されるので、
それを 20 0K に 変更す る */
lifdef — GNUC_
asm( ".xdef _HEAP_SIZE ");
asm( "_HEAP_SIZE equ 204800"};
#endif
/« ブロトタイフ *& 言 */
int SUPER( int );
int C_CUROFF(void );
int C_CURON(void);
int C_LOCATE(int, int );
int C_WIDTH(int);
int C_FNKMOD(int );
void TXFILL( unsigned short * );
void display( void );
unsigned short cirdat【J = { /* 0® 消去 用 */
2, /« テキストブレーン 3 の */
0, 0, /* < 0, 0 )から本/
768, 512, /* 横 768 、縦 512 ドットを */
0 /* 0TS める */
/本 本/
graph t_graph;
rect acr_rect =
0, 0, 768, 512
/* graph 構造体*/
/木本/
rect r_rect = { /* 四 円 体の外接 レクタングル */
400, 20, 600,120
>;
point_t r_oval = 0X000F000F ; /* 拿 /
unsigned short ppat[16 ] = { / 本ペンノ、•ターン */
OxCCCC, 0xCCCC, 0x3333, 0x3333 ,
0xCCCC, BxCCCC, 0x3333 , 0x3333 ,
0xCCCC , 0XCCCC, 0x3333, 0x3333,
0xCCCC, OxCCCC, 0x3333, 0x3333
/*
* メインメレーチン
* 初期•終了処理と描画 WSSW 出し
*/
void maim )
int sap;
char *memstart;
Heap 拿 heap;
* 初期処理
*/
sap = SUPER( 0 ) :
if (( mematart =(
/* ssp 保存用变数 V
/* スーパーバイザモード^^行*/
» )malloc( HeapSize )) == NULL
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
fprintf( atderr,
exit(1);
o enough memory for heap¥n") :
/* ヒープ用メモリがなけれ以^了拿/
heap = MMHeapInit ( merastart , /* ヒーブ<0^/1#9{匕 */
(char *)( mem 8 tart + 0 x 20000 ),
100, NULL, 0 );
if ( heap == 0 )(
fprintf ( atderr , "mm : can•t create heap ¥ n ");
exit (1);
C_CUROFF ();
GMInitialize();
GMInitPalet();
/*
* メイン本体
*/
display ();
/*
* 終了処理
*/
C_CURON ();
C_LOCATE( 0, 30 );
getch ();
TXFILH clrdat );
clrdat【0 ] =3;
TXFILL( clrdat );
C_WIDTH( 0 };
C_FNKMOD( 0 );
SUPER( ssp );
void display( void
/* */
GMOpenGraph( G_TXT,
/* カーソル OFF
/* グラフマン匕 </
/本パレット ( DW 匕*/
/* カーソル ON */
/本 一# TT 本/
/* キー入力待ち*/
/* テキストブレーン 3 消去*/
/* テキストブレーン 4 を*/
/* Vft* */
768X512 モード */
/* フアンクシヨンキー^*/
/* ユーザモードへ */
&.t_graph ) : /* graphs • 才 — 7* ン拿 /
GMAPage( 15 ) ;
/*
全ページに _
拿 /
/* 画面溃し(背录 e を使用)*/
GMBackColorl G BLACK
);
/*
背* •/
GMPenMode( G BACK + G PSET
);
/*
ペン モード 雌
*/
GMFillRect( tacr_rect
);
ハ
__ り 潰し
t/
/* 練の描画(前赌を使用”/
GMForeColor( G WHITE );
GMPenMode( G_FORE + G_PSET
);
/*
/*
前* 613¢ */
ペン モード設定
本 /
GMPenSize( 0x00010001
);
/*
ペン サイズ設定
*/
GMMove(
GMLine(
0x00100010
0x01000100
/* 四円形の枠を描 H ( ペンバターンを使用 )V
GMForeColor( G_WHITE ) :
GMBackColor( G_DGRAY ) :
GMPenMode( G_PPAT + G_PSET );
GMPenPat( ppat I;
GMPenSize( 0x00040004 ) :
GMFrameRRect( &r_rect, r_oval)
/* <ASCIIZ> 文物を獅拿 /
GMForeColor( G_BLACK );
GMBackColor( G_WHITE ) :
GMFontKind( G_ROM24 );
GMFontFace( G_ITALIC + G_OLINE
GMFontMode( G_PSET ) :
GMFontSize( 0x00300030 );
GMMove{ 0x0 0400120 ); /*
GMDrawStrZ( "abcdefg") :
(0x10,0x10 > にペンを W® •/
<0x100,0x100) まで練を引く拿/
/*
/»ペン モー
/* ペン バター ン 雌 */
/* ペンサイズ艇 */
; /* 四円形を描く*/
/* 前* */
ハ背*615$ */
/* フオント!^*/
);/* 字体設定*/
/* */
/* 文字サイズ*/
( 0x 4 0,03¢ 120 H: ペンを移勘*/
/* 対転*/
112
Oh ! X 1991.2.
宣言するのはスタックを食い潰してしまっ
てうまくありません。それならというので,
使う度に {} でブロックを作るというアイ
デアは捨ててください。画面に表示されて
いるリージョンの本体がブロック終了と同
時に破棄されて残らないというのは問題が
あるでしよう。
_ u —ジョン設定の方針
結局ここでは,汎用性のある関数をひと
つ作り,これを呼び出すことでデータの
セットを行うことにしました 。 XC Ver . 2.
0では ANSI 仕様に沿った方向でバージョ
ンアップが図られましたが,このとき不定
個の引数を取る関数を定義する方法もサ
ポートされています。これを利用すればラ
インデータがい〈つあっても大丈夫です。
リージョンにデータをセットするこの関数
を setRegion と命名しておきましよう。
リージョンのデータを収める領域は,メ
モリマンにヒープを分けてもらって作るこ
とにします。リージョンは,
struct \
int size ;
rect bounds ;
short linedata [17];
}
のような形をしています。 linedata を除い
たものは region 構造体として SXDEF.H
で定義されていますから,メモリマンに要
求するヒープのサイズは , 「sizeof (regio
n ) +sizeof ( short ) X 17」 ということに
なります。もちろんラインデータの数が多
ければ,17倍するところは変更する必要が
あります。
MMChHdlNew ( sizeof …… ) でメモ
リマンにヒープを要求すると,メモリマン
は要求されたサイズのメモリをヒープ領域
図6リージョンの組成
(0,0) _
(80, 20)
から切り出し,確保したメモリの先頭アド
レスを内部の固定領域に収めたあと,その
固定領域のアドレスを返してくれます。返
されたアドレスを adrs だとすると,* adrs
に ヒープから 切り出されたメモリの先頭ア
ドレスが入っているわけです。実際に確保
されたメモリを操作するためには,さらに
その先,っまり** adrs を参照しなけれ
ばなりません。メモリマンが 「void * * 」
を返すと最初に説明したのはこのことです。
メモリマンが返す内部の固定領域のアドレ
スのことをハンドルといいます。
受け取る変数のほうもこれに合わせて用
意します。リージョン分のメモリを要求し
たのですから,
region ホ *rgn ;
rgn = MMChHdlNew ( sizeof .);
とすれば OK です。え? 要求したサイズ
は region 構造体のサイズより大きいので
はない力、,ですって。そのとおり。でも C
コンパイラはそんな小さなことをウジウジ
言うほど了見が狭くはありません。
•リージョン設定の実際
実際にリージョンを設定するには , SX
DEF . I - I の region 構造体の定義に若干の修
正を加えます。
typedef struct region {
int size ;
rect bounds ;
short linedata [ 0 ];
} region : ,
のように , linedata [0] という行を追加
してください。配列サイズは0ですから , s
izeof ( region ) は以前と変わりません 0
ただし, linedata という名前の配列が構造
体のメンバに加わりましたので,先の例の
ように17個の short を入れる領域を用意し
このような形は,
リージョンで指定
てやれば , linedata [0 」〜 linedata [16]
でそれぞれの要素を扱えるようになったの
です。 setRegion 関数の引数として渡され
たラインデータを1つずつ取り出し , line
data 配列にセットしていけばリージョン
にデータをセットすることができます。こ
の linedata メンバはぜひとも region 構造
体に加えていただきたいのですが,シャー
プさん,いかがですか。
•リージョンを表示する
ではリスト5です。インクルードフアイ
ルに XC Ver . 2.0 に付いてきたヘッダフア
イル stdarg . h を追加し,プロトタイプ宣
言のところに setRegion 関数のプロトタイ
プを追加。メイン関数はリスト4のものを
使います。そして display 関数をリージョ
ン表示用に書き換えました。不定個の引数
を取る関数は,必ず取る引数の宣言のあと
に「...」•と書いて引数が続〈ことを示し
ます。
display 関数では 「region **」を2
つ宣言して,2つのリージョンを同時に表
示することにしてあります。では「リージ
図7正攻法のリージョン作り
( 0 , 0 )
(20 , 80)
( 100 , 100 )
二れをデータで表すと
46,…… サイズ(これだけがロングワード) 1 region
0, 〇 , 100, 100,…… リージョンが内接するレクタングル 1 構造体
0, 0 , 80,0 x 7FFF , …… ( 0,0 ) 〜( 80,0 ) を ON
20 , 80 , 100, 0 x 7FFF, …… ( 80, 20) ~ (100, 20) を ON
80, 0 , 20 , 0 x 7FFF, …… ( 0 , 80) ~ (20, 80) を OFF !> ラインデータ
100, 20, 100, 0 x 7FFF, .(20, 100) — ( 100, 100) を OFF
0 x 7FFF ……ラインデータ終了
特集 GRAPHMAN を使ってみよう 113
ョンの塗り潰し」とコメントしてあるとこ
ろから見ていきましよう 0 まずは size 変数
に,必要とするリージョンのサイズを計算
します。ここではラインデータを17個取る
リージョンを表示します。サイズが計算で
きたらメモリマンにメモリを要求し,返さ
れたハンドルを 「region * *」にキャス
卜して変数に収めます。
そして次がリージョンのデータセツトで
す。リージョンのハンドル,リージョンの
サイズ,リージョンが内接するレクタング
ル,ラインデータをパラメータとして set
Region 関数を呼び出します。ドキュメン
卜のリージョンのサンプルのところに挙げ
てあった,アセンブラでの記述法と同じよ
うにデータを並べていけば,指定したリー
ジョンの ハン ドルにデータがセツトされま
す。続いてもうひとつのリージョンも同様
にメモリを確保し,データをセットします。
色とペンパターンを設定したら最後の仕
上げ,リージョンの塗り潰しです 。 GMFi
llRgn 関数で最初のリージョンを塗り潰し,
2つ目のリージョンは GMSlideRgn 関数
で横に少しずらして塗り潰します。
最後に setRegion 関数ですが, stdarg .
h で定義されている va _ start , va _ arg ,
va _ end の 3 つのマクロを使つて不定個の
引数に対応します。必ず取る引数の最後の
ものを va _ start で指定したら,不定個の
部分は va _ arg を' H するたびにひとつず
リスト5リージヨンの描画
■■■■■■■■■■■■■
つ取り出されていきます。これを利用して
リージョンのサイズ,リージョンが内接す
るレクタングルにデータをセットし,続い
てラインデータをセットしていきます。最
後に va _ end を実行してデータのセットは
終了です。
この setRegion 関数は,最初から用意さ
れたライブラリ関数のように使うと便利で
しよう。ドキュメントにあるリージョンの
サンプルを,自分で入力して表示してみて
ください。
•FURTHER STUDY
実は SXDEF . H のリージョン構造体の
宣言を変更しなくてもラインデータをセッ
卜することができます。リージョンが内接
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
1
#include <stdio.h>
77
/*
2
#include <stdlib.h>
78
t
リージョンの設定
3
#include く stdarg•h>
79
拿 /
4
#include <sxlib.h>
80
setRegion( rgn f
5
81
size,
6
#define HeapSize 0x20000
82
10,110,
40,
140,
7
*ifdef GNUC
83
110, 10,
30,
0X7FFF,
8
asm( ".xdef HEAP
SIZE ");
84
120, 30,
40,
0X7FFF,
9
asm( " HEAP SIZE
equ 204800 M );
85
130,10,
20,
0X7FFF,
10
#endif
86
140, 20,
40 ,
0x7FFF f
11
87
0X7FFF );
12
ハ
88
13
t
プロトタイプ宣言
89
size
=sizeof( region )
+ sizeof( short
14
90
rgnl
=(region **)MMChHdlNew( size );
15
91
setRegion( rgnl,
16
int
SUPER( int );
92
size,
17
int
C CUROFF(void );
93
10, 110,
40 ,
140,
18
int
C CURON(void );
94
110, 20,
30,
0x7FFF,
19
int
C_LOCATE(int, int) ;
95
120,10,
40,
0x7FFF,
20
int
C WIDTH(int );
96
130,10,
40,
0x7FFF,
21
int
C_FNKMOD(int );
97
140, 20,
30,
0X7FFF,
22
void
1 TXFILL( unsigned
short 拿 };
98
0x7FFF );
void display( void ) :
void setRegion( region 本尊, long,
ft
*
/* 晒眩 《 酬"
unsigned short clrdat【]=(
2 ,
0, 0,
768, 512,
0
);
• t GRAPHMANffigft 本ノ
graph t_graph ;
rect scr_rect = {
0, 0, 768, 512
);
unsigned short ppatt 16 ] = {
OxCCCC, GxCCCC, 0x3333, 0x3333,
OxCCCC, 0xCCCC, 0x3333, 0x3333,
0xCCCC, 0xCCCC, 0x3333, 0x3333,
0xCCCC, 0XCCCC, 0x3333, 0x3333
};
メインノチンはリスト 4 と同じ
/<
«
*/
void display( void )
l
int size ; /*
region 拿京 rgn; /本 U—S? 3>!
region 窣本 rgnl;
= サイズ”
> ハンドルアドレス */
GMOpenGraph( G_TXT,
GMAPage(15 );
&t_graph
GMBackColor( G_BLACK );
GMPenMode( G_BACK + G_PSET );
GMFillRect( iacr_rect );
ド リージ s ン魄〇潰し*/
/»
* サイズを計算し
* リージヨンをヒープから得る
size = sizeof( region ) 4- sizeof( short )*17;
rgn = (region **)MMChHdlNew( size );
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
GMForeColor( G GREEN );
/*
前 */
GMBackColor( G DGRAY );
パ
背 * V
GMPenMode( G_PPAT + G_PSET );
it
ペンモード設定 */
GMPenPat( ppat );
/*
ペンパターン設定 》/
GMPenSize( 0x00040004 );
/*
ペンサイズ設定 */
GMFillRgn( rgn );
/*
リージヨン塗り溃し */
GMSlideRgn( rgnl,0x00300000 )
; /*
rgnl^^mth */
GMFillRgn( rgnl );
/*
rgnl を塗り溃し */
リージヨンの設定
SXDEF. H の reg i on の鎌を
typedef struct region {
int size ;
rect bounds;
short linedata[ 0 J;
} region ;
に変更すること
void setRegion( region ♦♦rgn,long len,...)
{
va_liat 1st ;
int i;
va_start(1st,len );
(*rgn)->size =len ;
(>rgn)->bounds.left = va_arg( 1st, int );
け rgn} - 〉 bounds.top = va_arg( 1st, int );
け rgn) - 〉 bounds•right = va—arg< 1st , int );
( 本 rgn>->bound8•bottom = va_arg(1st , int );
for ( i=0; i < (len-aizeof(region))/sizeof(short ); i++
(*rgn)->linedata( i J = va—arg( 1st, int );
va—end< 1st );
リスト 6 U ージヨンデータセツト の飛んで る やり方
void aetRegion( region 拿拿 rgn, long len, •••)
{
va_li8t 1st ;
int i;
va^start(1st,len );
( 拿 rgn>->size =len;
for ( L=0; i < (len-aizeof(int))/sizeof(short); i++ )
{(short 拿 { 本 rgn>->bound8>t i 】 =va_arg( 1st, int
va 一 end( 1st );
114
Oh ! X 1991.2.
するレクタングルは構造体ですが,それぞ
れのメンバは short であることを考えると,
struct region \
int size ;
それでは正統派の手続きでリージョンを
作るとどうなるのかを見ていただきましよ
う。リスト7です。大域変数はリスト5,
メインルーチンはリスト4と同じなのでこ
75) に移動して, rgn との共通部分を取り
除きます。こうして右下の 25 X 25 ドットも
欠けた領域ができあがりました。いつもの
ように描画用の各種データをセットし , r
short bounds L 4] ;
}
と見なすことも可能なのです。
これを利用すると, setRegion 関数はリ
スト6のように書き換えることができます。
ただ,これではなにをやっているのかわか
りづらくなってしまいます。やはり linedata
メンバはサボートしてほしいところです。
正統派の 1 J ージョン描画
setRegion 関数が用意されていないこと,
また, region 構造体に linedata メンバが
ないことを考え合わせると,どうもリージ
ョンを自分で セッ トするという アプローチ
は禁止されているのではないかという印象
を拭いきれません0グラフマンのリフ アレ
ンスを眺めていると,空のリージョン(ヌ
ルリージョン)を作る,リージョンとリー
ジョンの共通部分を得てリージョンとする,
などの関数がそれを裏づけるかのようです。
これは,将来リソースエディタがサポー
卜されたときには, SX - WINDOW 上で
マウスをちよちよいといじって自由な形の
リージョンを定義できるようにするからと
いうことなのかもしれません。早くリソー
スエ デイタとリ ソース コンパイ ラを サボー
卜してほしいものです。
こでは省略してあります。また, point_t
を16進数で指定するのはやっかいなので,
プ ログラムの最初で X _ Y というマクロを
定義してあります。
display 関数を見てみましよう。ここで
はリージョンのハンドルを3つ用意しまし
た。 rgn は描画するリージョンを作成する
ため, rgnl , rgn 2 は途中の加工用です。
最初に GMNewRgn 関数で,新しいリー
ジョンを作成します。ここで作られるのは
大きさのないヌルリージョンです。具体的
にはリージョンが内接するレクタングルが,
(0, 0) —(0, 0) となっています。そこでリー
ジョンが内接するレクタングルの右下の座
標を変更し, rgn は(0,0)-(100,10 0) に , r
gnl は(0, 0) -(25, 25) に, rgn 2 は(0, 0) - (5
0,5 0) にします。これで3つのヌルリージ
ョンは,長方形の領域を表すレクトリージ
ョンになりました。
まずは rgn と rgnl から重なった部分を G
MXorRgn で取り除いたリージョンを作
成し,それを rgn にセットします。つまり
rgn は左上の 25 X 25 ドットが欠けた領域に
なるわけです。続いて GMMoveRgn で rg
n 2 を(25, 25) に移動し,再び rgn との共通
部分を取り除きます。これで rgn は左上の •
25 X 25 ドット,真ん中の 50 X 50 ドットが欠
けた領域になりました。最後に rgnl を(75,
gn を (300, 200) に移動して表示すれば disp
lay は終了です。
*
グラフマンのドキュメントをベースに,
C 言語でダラフマンを使う方法を摸索して
みました。ここではリスト4でテキスト4
プレーンを使用する方法を示し,以後それ
を使ってプログラムしてきましたが , GM
InitPalet を呼び出さなければ従来どおり
の文字2プレーン,システム2プレーンの
構成で扱うこともできます。このときは G
_WHITE などのマクロの代わりに,〇〜 3
のカラーコードを 直接指定して描画すると
いいでしょう。
リスト5ではグラフマンがサポートして
いないリージョンの直接生成まで行ったた
め,キヤストやポインタが嵐のように登場
して C 初級.中級の方には難しかったかも
しれません。勉強材料だと思って発奮して
みてください。ここでは取り上げませんで
した力 ? ,グラフマンが現在のグラフィック
カーソルの 位置から線を引くという特徴を
利用して,タートルグラフィックライブラ
リを構築することも可能です。
グラフマンはまだまだ多くの関数を抱え
ています。 GMOpenRgn などを使うと,
さらに複雑なリージョンも作れるのかもし
れません。楽しく遊べそうです。
1:# include <stdio.h>
2: tinclude <stdlib.h>
3: #include <sxlib.h>
4 :
5: #define HeapSize 0x20000
6: #define X_Y(x,y) (x)*0x 10000+ (y)
7 : #ifdef __GNUC__
8: asm! ".xdef _HEAP_SIZE” );
9 : asm( "_HEAP_SIZE equ 204800" );
10: #endif
11:
12: /*
13: * ブロトタイブ宣 a
14 : */
15 :
16: int SUPER( int ) :
17: int C_CUROFF(void);
18: int C_CURON(void);
19: int C_LOCATE(int, int);
20: int C_WIDTH(int);
21:int C_FNKMOD(int );
22: void TXFILL( unsigned short * );
23:
24 : void display( void );
25:
26: /*
27 : 本 はリスト 5 と
28: » メインルーチンはリスト 4 と同じ
29: */
30:
31: void display( void )
32: {
33 : /*
34 : 本 リージ 3 ンの組み合わせで
35 : * 新しいリージョンを作る
36 : 本 /
37: region **rgn , 本本 rgnl, 拿 * rgn2;
38:
39: GMOpenGraph( G TXT, &t graph );
40: GMAPage(15 );
41:
リスト 7 正統派の U —ジョン描画
42 :
43 :
44:
45 :
46:
47 :
48 :
49 :
50:
51:
52 :
53 :
54:
55 :
56:
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67:
68 :
69:
70:
71 :
72 :
73:
74 :
75 :
76:
77 :
78:
79:
80:
GMBackColor( G_BLACK ) ;
GMPenMode( G_BACK + G_PSET );
GMFillRect( &acr_rect );
/*
* 作成するリージョン
*/
rgn = GMNewRgn ();
(*rgn)->bounds.right = 100 ;
(*rgn)->bounda.bottom = 100 ;
/<
« 作成補助用のリージョン
*/
rgnl = GMNewRgn ();
<<rgnl)->bound8.right = 25;
(<rgn1)->bounds.bottom = 25;
rgn2 = GMNewRgn ();
(*rgn2)->bounda.right = 50;
(*rgn2)->bounds.bottom = 50;
/*
* XOR は重なった部分を取り除く
*/
GMXorRgn( rgn, rgn, rgnl);
GMMoveRgn( rgn2, X_Y( 25, 25 ));
GMXorRgn{ rgn, rgn, rgn2 );
GMMoveRgn( rgnl, X_Y( 75, 75 ));
GMXorRgn( rgn, rgn, rgnl);
GMForeColor( G_RED );
GMBackColor( G_YELLOW );
GMPenMode( G_PPAT + G_PSET );
GMPenPat( ppat );
GMPenSize( X_Y( 4, 4 ));
GMMoveRgn( rgn, X_Y( 300, 200 ));
GMFillRgn( rgn );
特集 GRAPHMAN を使ってみよう 115
特集 2 SX - WINDOW プログラミング
SXLIFE Part II
ポップアップメニューの追加
前回、ともかく何かを作ってみようということでお届けしたの
がディスクにも入っていたライフゲームです0そこで今月から
数回にわたって、 SX - WINDOW 用のソフトらしくするための
機能を加えていきましょう。最初はポップアップメニューです。
Nakamori Akira 中森章
1100% の SXLIFE
先月のオマケディスタに入っていた sx
LIFE はもう動かしてもらえたでしようか。
これは私が SX - WINDOW 上のアプリケ
ーションとして作った記念すベき第1号な
のです。しかし,あの時点では時間的制約
と私の不勉強のせいで最初イメージしてい
た100%の SXLIFE にはなりませんでした。
そこで, SXFILE を真の姿に近づけてい
こうというのが本稿の意図です。
ところで,オマケディスク用のプログラ
ムを編集部に渡した直後, UNIX の JUN
ET で X 68000 のニュースグループに奇しく
も 同 じ SX - WINDOW 上のライフ ゲーム
が投稿されていたので,ライバル意識を持
って実行してみたところ非常にショックを
受けてしまいました。とにかく動きが高速
なのです。確かに最高速で動作させると他
のウインドウの動き力 ? 重くなってくるので
すが,そんなのは言い訳になりません。こ
のままでは悔しいので私の SXLIFE も今
ではより高速に改造してしまいました。
今回の連載ではこの高速化技法について
は特に説明しませんが,要点をいうと1行
処理をさらに高速化して処理単位を10行に
したということです。結果として JUNET
版と同程度の速さになったと思います(他
の ウィン ドウ理もそれほど重くなってい
ません)。興味のある人は改造してみてくだ
さい。
さて,100%の SXLIFE とはなんでしよ
う。ここですべてを明かすのは面白くあり
ませんから,今月,来月と小出しにしてい
くことにします(私自身もそれを実現でき
るかどうかはこれからの勉強次第なので大
口はたたきたくない)。とりあえず,今月
116 Oh ! X 1991.2.
ではポップアップメニュー処理を追加しま
す。
メニューを使う手順
オマケデイスタの SXLIFE はドットの
初期設定を右ボタンで行うようにしました。
単純なドットの設定と消去のみをサポート
していたのみですが,本来なら右ボタンは
ポップアップメニュー(名前が長ったらし
いので以下では単にメニューといいます)
の項目選択に割り当てたいものです。そし
て,ドットの設定と消去のほかにも SXLI
FE のバージョン説明や画面の全消去ぐら
いの選択肢を持たせるべきだったと思って
います。というわけで,さっそくこの機能
を実現することにします。
f 列によって,いろいろなアプリケー シヨ
ンの ソース や実行形式オブジェクトの逆ア
センブルリストを必死に解析したところ,
メニュー機能の実現には次の3つのステッ
プを踏んでいることがわかりました。
#メニューの初期化
•メニューの表示と項目選択
#プログラム終了時の処理
これらの手順を SXLIFE に取り込んで
やればよいのです。それぞれの項目につい
て実際の手順を説明しましょう。
メニューの初期化
メニュー の初期化とは メニュー の実体を
作成することです。そのためには メニュー
を実現するために十分なだけ (20 バイト+
a ) のメモリ領域を確保して,そこに メニ
ュー 情報を書き込めばぉしまいです。この
メニュー 情報として次のようなものを決定
しなければなりません。
•メニュー ID (オフセツト〇)
0か1を設定します。これはメニュー定
義関数(あとで説明)のリソース ID です。
•メニュー定義関数への八ンドル
(オフセツト B )
ハンドルとは C 言語でいうボインタのポ
インタみたいなもので,その指し示す先に
ある データが 実体へのアドレスとなってい
ます。メニュー定義関数とは表示するメニ
ューの形状を決定するリソースで,
_ RMRscGet
という SX コールで 獲得できます。そのと
きには,第1引数(あとからスタックに稂
まれるほう)を ‘ MDEF ’ という32ビット
文字定数に,第2引数(先にスタックに積
まれるほう)を上で出てきた16ビットのメ
ニュー ID (種類)にします。メニュー ID
として現在は0と1のみしかサポートして
ないようです〇 0がタイトルなしメニュー
(図 1), 1がタイトルありメニュー(図 2)
のようです。
•メニューアイテムの許可フラグ
(オフセツト 10)
メニューアイテムとはメニューの中に表
示されている文字列のことです。マウスカ
ーソルを持って行くとそこが反転してメニ
ューが選択されていることを示すアレのこ
とです(図3)。 SX - WINDOW では (M
acintosh と同じく),たとえメニューの中
にあるアイテムでも,状況によってはそれ
を選択することができないように設定する
ことができるようになっています(このと
き選択できないアイテムは他のアイテムよ
り薄〈表示される)。それを実現するのが
この許可フラグです。
メニューアイテムにはメニュー内で上か
ら順に1, 2,3,……と番号が付けられ
ていて,その番号に対応するビット位置を
0 にした32ビットデータが許可フラグにな
ります。したがってすべてのアイテムが選
択可能なメニューでは許可フラグはオール
1になります。また,許可フラグのビット
0には意味がないようです。また,許可フ
ラグのビット数から推測できるように,メ
ニューアイテムの最大は31個になります。
•メニュー^のテ^
(オフセット 14)
タイトルありメニューを使用するとき,
メニューのタイトルが格納されているメモ
リ上のアドレスを設定します。メニューの
タイトルは最初の1バイトがタイトルの長
さ(バイト数)を表し,2バイト目以降が
文字列です。もちろん,タイトルなしメニ
ューの場合は設定する必要はありません。
•メニューアイテム数(オフセッ MB )
メニューアイテムの総数から1を引いた
値を設定します。
氺
メニューを使用する場合,少なくとも以
上のメニュー情報を設定しなければなりま
せん(各情報の正確なバイト数はドキュメ
ントを見て〈ださい)。これが先に20バイ
卜+ぴと述べたうちの20バイト分で,残り
の+びはこれに続く メニューのアイテムデ
ータ情報です。1つのアイテムデータは次
のような構造をしています。
•ショートカットコード (1 バイト)
ASCII コードの1文字です。これはメニ
ューアイテムを選択したのと同じ効果をキ
ーボードのキー入力で実現するためにはど
のキーを押したらいいのかを表示するため
の文字です。ここに 41 h (’ A ,) と書かれ
ていたら A キーを押したときにそのメニュ
ーアイテムを選択したのと同じことになり
ます0ただし,プログラムをそのように(キ
一入力対応に)書いておかなければまった
く無意味です。ショートカットコードが必
要ないときはここに0を書いておきます。
•チェックマーク (1 バイト)
ここに0以外を書いておくとメニューア
イテムを表示するとき,横にそのアイテム
がすでに選択されていることを示すチヱッ
ク マーク (,レ’というような記号)が同時
に表示されます。これは単なる表示にすぎ
ませんからチェックが付いたメニューアイ
テムがどのような意味を持つかはプログラ
ム任せです0
•表示文字列
メニューアイテムとして表示する文字列
です。最初の1バイトが文字列のバイト数
を示し,それ以降が実際の文字列です。
*
このメニューアイテム情報がメニューア
イテムの個数だけ続くのです。ここで注意
すべきことは,ショートカットコード,チ
エックマーク,表示文字列の長さの合計が
偶数バイトになるようにしなければならな
いという点です。つまり,全体が偶数バイ
卜になるように表示文字列の長さを調整し
なくてはなりません。これに違反するとメ
ニューを表示するときにアドレスエラーを
起こしたり,グチヤグチヤなメニューが表
示されたりします。
最後になりましたが,メニューのための
メモリ領域を確保するためにも SX コール
を使用します。それは,
_ MMChHdlNew
という SX コ-•ルで,引数としてメニュー
に必要な20バイト+ a のバイト数を与えま
す。最初のうち,私はメモリ領域を SX コ
ールでわざわざ確保しなくてもプログラム
内のデータ領域を使用すればうまくいく
(もちろんメモリ領域へのハンドルもどき
を作る)と考えていました。しかし,それ
をやると全然メニューが表示されなかった
ので,あっさりと他のプログラムで行って
いるメモリを確保する方式に乗り換えてし
まったことを白状しておきましよう(そう
するとうまくいった)。
以上がメニューの初期化プログラムのす
ベてです。私が実際に書いた初期化プログ
ラムをリスト1に示しておきましよう。ほ
とんどコメントを付けていませんが何をし
ているかはわかりますね。ここではメニュ
一の初期化時にエラーが発生してもなにく
わぬ顔をして処理を終了しています。これ
は,たとえメニューが使えなくてもライフ
ゲームを実行させようというためです(単
なる手抜きという意味もあったりして)。た
だ,エラーがあったかどうかは _ useMenu
( a 5) という変数の値でわかるようになっ
ています(プログラム終了時に参照する)〇
なお,リスト1の initMenu 関数はウイ
ンドウをオープンしたあと,ライフゲーム
の初期化を行う直前で呼べばいいでしょう。
メニューの表示と項目選択
いよいよメニュー処理のハイライト(ウ
ィンドウのハイライト表示とは無関係です
よ)であるメニューの表示と項目選択です。
これは,メニューを表示したあと,マウス
カーソルを追い続け,マウスカーソルがあ
るメニューアイテムを指していたらそこの
表示色を反転し,メニューアイテムを指し
ながらマウスの(右)ボタンが離されたら
図1 タイトルなしメニュー
ラ
ーメン
ギ
ョ ー ザ
レノじ
ニライタメ
チヤ .
—ンユ ー
ノ
【ンマ
シ ュー マイ
図2 タイトル付きメニュー
; 正き H
ウルトラマン
: 仮面ライダー
ポワトリン
; キカイ ダー
デビルマン
イコちやん
図3 メニューアイテム
ィカ
— 1
イカ
タコ
—
タコ
マグロ
—
それぞれが
マグロ
ハマチ
—
メニューアイテム
イクラ
—
イクラ
ウニ
—
ウニ
マウスで
“ハマチ”
を選択すると
特集ポップアップメニューの追加 117
ポップアップメニューの例
そのアイテム番号をプログラムに知らせる,
という複雑な処理をしなくてはなりません。
考えただけで絶望的な気持ちになってきま
すね。でも心配はいりません。これら一連
の処理を行ってくれる SX コールが SX-W
INDOW では用意されています。それが,
_ MNSelect
という SX コールです 0 これに メニューへ
のハンドル ( _ MMChHdlNew で求め
た値)と,マウスの右ボタンが押された位
置を引数として渡せば,一連のメニューの
項目選択処理を行ったあと,選択されたメ
ニューアイテムの番号をレジスタ DO に入
れて返してきます。この番号にしたがって
メニューアイテムに対応する処理を行えば
いいのです。
メニューの 選択処理を SXLIFE に組み
込むにはちょっとした工夫が必要です。な
ぜ なら, メニュー 処理は マウスの 右ボタン
で 行うことを基本とします力 5 ', SXLIFE
にはライフ ゲームの ドットを設定(あるい
は消去)するという機能を右ボタンに持た
せてあります。 SXLIFE の操作性自体は
大きな変更をしたくない(本音は左ボタン
が押されたときのイベント処理は書き換え
たくない) ので 姑息な手段を用いることに
します。つまり,ドットを設定するモード
にあるとき,すなわち userWRK ( a 5) とい
う変数の値が0でないときは今までどぉり
ドットの設定 • 消去処理を行います。
userWRK ( a 5) の値が0であるとき(こ
れが初期値)は_ MNSelect でメニュー
処理を行います。古い版の SXLIFE では
マウスの右ボタンが押されると無条件に u
serWRK ( a 5) の値は1になりましたが,新
版の SXLIFE では メニュー によって「ド
ットの設定」が選択されたときに userWR
K ( a 5) が1になります 。 userWRK ( a 5) を
0に戻すのは古い版と同じくマウスの左ボ
タンが押されたときです。こうすることで
古い版に対して最小の修正量で SXLIFE
にメニュー 処理を組み込む こ とができます。
リスト2にマウスの右ボタンが押された
ときのイベント处理のすべてを示します。
古い版の SXLIFE に対してどこが変更に
なったかはわかりますね。
リスト2で行っている選択されたメニュ
ーアイテム ( _ MNSelect の返り値)に
対する処理をまとめると次のようになりま
す(リスト1のメニューアイテム定義も併
せて見てくださいね)。
〇…項目選択なし(何もしない)
1 -" SXLIFE についての情報を表示
2…許可フラグで禁止されているので
選択されない(単なる飾り)
3…画面を初期化(ドットの全消去)
4…ドットの設定 • 消去(従来どぉり)
5…何かをする(実は何もしない)
といったぐあいです0 メニューアイテム3
の画面の初期化処理 ( initMap ) が少しや
やこしい(結構技巧的な処理をやってい
る)けれど全体の流れはわかるでしよう。
リスト1
プログラム終了時の処理
プログラムを終了するときには, SX コ
ールで確保したメニューのための領域を解
放(捨てる)することが必要になります。
このためには,
_ MMHdlDispose
という SX コールを 使います(リスト1で
もメニュー定義関数が得られなかった場合
ひっそりと この SX コールを行って いた こ
とに気づきました力 1 )〇 この SX コールの 引
数には メニユーへ •の ハンドル ( _ MMC
hHdlNew で求めた値)を与えます。ただ,
メニューの 初期化が失敗しているときは,
このような処理は必要ありません(やると
かえって悪い)。具体的には変数 _ useMe
nu ( a 5) の値が0のときは SX コールを 発
行せず,1のときのみ発行するようにして
います。このリストはあまりにも簡単です
から必要ないでしよう。
I さて来月は
メニュー処理の追加は思っていたよりも
簡単にできてしまったというのが実感です。
まあ,メニュー処理は100%の SXLIFE の
ための過程でしかありませんから当然とい
えば当然でしよう。私が真にやりたかった
のはもっと別のことなのです。それを実現
するためにはメニューによる行動選択が是
非とも必要になってくるので,今月はワン
クッション置いてみました。さて,来月は
ベールを脱ぐと思われる100%の SXLIFE
とはなんなのでしよう。乞うご期侍という
ところですね。
clr. w
-(sp)
move.1
t-MDEF 1 ,-(sp)
.dc.w
— RMRacGet
addq.1
#6 ,ap
tst .1
d0
bmi
menuRaGetErr
move•1
roenuHdi(a5) 9 a2
move.1
Ta2) f a2
move•1
aO f 6(a2)
move.b
#1 f _useMenu(a5)
move.1
rta
<sp い, a2
menuAllocErr :
move•b
#0,_useMenu(a5}
move•1
rts
(sp)+,a2
menuRsGetErr:
move•1
_menuHdl(a5) , - (ap)
.dc.w
— MMHdlDispose
addq•1
#4 ,sp
move•b
#0 t _useMenu(a5)
move.1
(sp)+ f a2
* 断たな奴激 « _menuHdl(a5) :£^咖
尊 uaeMenu(a5)
t
寒拿拿拿拿拿家塞寡塞 ttft 拿蓴拿 t 拿專
窠メニユー匕
• even
; u:
move. 1 a2 , ap)
move.1 f(mProtEnd-mProt) , - (ap)
.dc.w — MMChHdlNew
addq.1 #4 t sp
move•1 d0,_menuHdl(a5)
ble menuAllocErr
move•1 d0,a2
move.1(a2),a2
lea mProt(pc),a0
move•w #(mProtEnd-mProt) f d0
imLoop :
move.b (a0)+•(a2)
dbra dO,imLoop
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
118 Oh! X 1991.2.
末メニュー翻 (20 ハーイト)
0
0
0
0
Sfffffffb
0
許可フラグ
62
.dc.
w
4 ;; アイテム数一 1
63
窶
64
* メニ
.ユーアイテム
65
%
66
ml ten
a:
67
.dc
b
$00,$0O,$0f,'SXLife について ,
:;18 Byte
68
.dc
b
$00,$00,$09, ».*
;;12 Byte
1,6 Byte
69
.dc
b
$00,*00 , $0d, ヒ, ;
70
.dc
b
$00,$00 , *0d,’ ドットの設定, :
$00 , $00 , $0d ,, なにか ^ する, :
16 Byte
71
.dc
b
16 Byte
72
.dc
b
$00
mProtEnd :
リスト2
* マウスダウン ♦ イベント時の班:理(右ボタン)
拿*拿本《拿拿蓴拿<<<拿*拿拿拿***拿袁寒*拿蓴
.even
EV MSRD0WN :
6
movem.1
dl~d7/al-a5,-(sp) ;;
レジスタを 保存
98
divu
#12,dl
7
拿
99
move.w
dl , - (sp)
8
* 自分のウインドウ カ咬 jPK る
100
move.w
d2,-(sp)
9
拿
101
lea
fieid(a5) f a 1
10
move.1
evntRec+with(a5) f d0
102
lsl.l
#6,d2
11
beq
retMSRDOWN ;;
どのウインドウにも該当しない
103
lea
(al,d2.w),al
12
cmp.1
wPointer(a5),d0
104
lea
(al 9 dl.w) 9 al
13
bne
retMSRDOWN
他のウインドウだった
105
move.1
wPointer(a5) ,- (sp J
14
拿
106
.dc • w
— GMSetGraph
15
* カレントボー>にセツ
h
107
addq.1
^4 ,sp
16
t
108
tst.lj
(al)
17
move • i
d0,-(sp)
109
beq ^
nonExist
18
.dc. w
— GMSetGraph
110
bsr
preset
19
addq.1
念?, sp
111
clr. b
(al)
20
move.1
a0 ,a2
112
bra
cmnMSRDWN
21
tst. w
active(a5)
113
nonExist
22
bne
procMSRDOWN ;;
前からアクティブだった
114
bsr
pset
23
move. w
1 1,active(a5)
115
move.b
寧 _al)
24
move. w
#Sffff f evntMsk(a5) ;;
イベントマスクをセット
116
cmnMSRDWN :
25
%
117
addq.I
弇 4,sp
26
* ウインドウを切り替える
118
noAction :
27
本
119
move.1
wPointer(a5) , - (sp)
28
pea
(a2)
120
.dc. w
一一 WMDrawGBox
29
.dc. w
„WMSelect ;;
自分をセレクト
121
addq.1
ネ 4,sp
30
addq.1
パ , sp
122
本
31
.dc . w
EMRStill ;;
右ボタンが押されたままか
123
> イベントレコードをのぞく
32
tst.1
d0
124
t
33
beq
noStillMSRDOWN
125
noStillMSRDOWN :
34
move.1
evntRec+where(a5) , - (sp)
126
pea
evntRec(a5)
35
• dc. w
„WMFind
座樣がウインドウのどこにあるか
127
move.w
evntMsk(a5)(sp)
36
addq•1
ネ 4 , sp
128
.dc . w
— TSGetEvent
37
crop • w
?? inContent ,d0
129
addq.1
^6 t sp
38
bne
noStillMSRDOWN ;;
コンテントリージヨン以外
130
t
39
本
131
* 今回の状 ffi をセーブ
40
« マウスの座抜を知る
132
t
41
%
133
retMSRDOWM:
42
procMSRDOWN :
134
movem,1
(sp)+,dl-a//al-a5
43
tst. b
userWRK(aS) ;;
艇モードか
135
rts
44
bne
dotSetReset
136
45
1 1
137
errMSRDOWN :
46
** メニュ •
一を表示する
138
moveq.1
¢-1 ,d0
47
tt
139
bra
retMSRDOWN
48
move.1
evntRec+where(a5)(sp);;
ここからがメニュー処理
140
49
move.i
_menuHdl(ao),-(sp)
141
.even
50
.dc. w
— MNSelect
142
initMap :
51
addq.1
;5-sp
143
movem.1
dl/d3/d4/al , - (sp)
52
ts t. b
d0
144
move.L
wpointer(a5)(sp)
53
beq
doMenuO
145
.dc. w
— GMSetGraph
54
cmpi.b
亡 3,d0
146
addq.1
: 了 , sp
55
bit
doMenu1
L47
t
56
beq
doMenu3
148
move.w
ネ ( 64«DispHigh い U,dl
57
cmpi.b
ネ 5 , d0
149
moveq.1
;0,d3
58
bit
doMenu4
150
moveq.1
;0,cU
59
beq
doMenuo
151
lea
_field(a5},al
60
bra
noAction
152
clrLoop:
61
153
bclr.b
キ 0,(a U +
62
doMenuO
154
beq
clrSkipl
63
bra
noAction ;;
迸択されなかった
155
move•w
d4 , - {sp)
64
156
move.w
d3 , - (sp)
65
doMenu1
157
bsr
preset2
66
pea
aboutMess(pc)
158
addq.1
-4 , sp
67
move. w
41 , - (sp)
159
clrSkipl:
68
dc. w
„DMError
160
addi.w
ネ 12,d4
69
addq•1
^6 , sp
161
cmpi.w
ネ <64 拿 12>,d4
70
bra
noAction
162
bcs
cirSkip2
71
163
addi.w
#12 , d3
72
aboutMess :
164
move.w
ネ 0,d4
73
.dc. b
,ライフ ゲーム by 中森童,, ,S0d
165
clrSkip2 :
74
.dc.b
’ Mov, 28,1990*,0
166
dbra
dl f clrLoop
75
16.7
t
76
• even
168
move.1
n 1,_xhold(a5)
77
doMenu3
169
move•1
ネ -1,_nv0(a5)
78
bsr
initMap
170
lea
_vs0(a5),a 1
79
bra
noAction
171
move.1
al>_vp0(a5)
80
172
lea
_vs1(a5),al
8L
doMenu4
173
move•1
a 1 t —vp1(a5)
82
move.b
4 L 9 userWRK(a5) ;;
描画をロックする
174
lea
_ys0(a5),a 1
83
bra
noAction ;;
ロックのボタン
175
move.1
a 1 # _yp0(a5)
84
176
lea
_ys1(ao),al
85
doMenu5
177
move.1
al ,一 ypUa5)
86
bra
noAction
178
拿
87
179
move.1
wPointer{a5) ,- (spl
88
dotSetReset:
180
• dc.w
— WMDrawGBox
89
.dc. w
EMMSLoc
181
addq.1
#4 ,sp
90
ts t.1
dO
182
movem.1
(sp)+ f dl/d3/d4/al
91
bmi
errMSRDOWN
183
rts
92
move.1
d0,dl
moveq.J
move.w
swap
move.w
divu
♦ 0,d2
#0,dl
dl
d0,d2
#12,d2
水平
垂直
ク'ローボックスを害き直す
イベントレコード
イベントマスク
/レープ回数
X ® 標
ym.
変数類の 4 /細匕
グローボックス描き®し
特集
ポップアップメニューの追加 119
「 SX エンターテイメントキット J 計画
Ogikubo Kei 获塞 圭
寒い日はガスフアンヒーターをがんがんにつけて,バイクは転がさずにマウ
スを転がす。それが正しい日本の冬というもの0それにつけても,マウスの
おともに欲しいものがありませんか? そこで,ぼくらの SX - WINDOW に
味わい深いスモールアプリケーシヨンを用意したいナ,というお話です0
•とりあえず前置吉を
最近,お家の事情があっていろんなバソコ
ンのウインドウシステムを触っているのだが,
皆さんそれぞれ癖があって面白い。
なかでも Macintosh がいちばん可も不可
もなくまとまっている気がする。長年の蓄積
があるからね。 Macintosh が出てからもう
6年もたったのだから,洗練されてなければ
嘘になる0ただあれは,ウインドウシステム
のイメージとはちょっと違う。アプリケーシ
ョン1つひとつが全画面を専有してしまうか
らだ〇ウインドウシステムというと,1アプ
リケーション1ウインドウというイメー ジが
ある。ないか?まあ,イメージの問題だ。
MS-WINDOWS 3. 0や NeXT はそうなっ
ている。アプリケーションは自分のウインド
ウだけしかいじらないよ,ってことだ。 Ne .
X 丁になると,アプリケーション間通信って
な高度な技があっていいのだが,あいつは68
040であって,68000の X 68000 より40も大きい0
もっとも, NeXT は UNIX マシンであって,
パソコンと いうのもなんだ が,ハイエンド P
C として売っていきたいようなことをキヤノ
ンの人はいっていた。当のジョブズさんも,
そうとらえているような気はする。
MS - WINDOWS 3. 0はまだ日本語版が出
ていないのでよくわからない力 5 ',世間で騒い
でいるほど使いやすいものではない。アプリ
ケーションを動かすのは楽でいい力す,インス
トールがやけに面倒だったり,プログラムマ
ネージャとファイルマネージャが別々に存在
していて,ファイル管理がうっとうしいなど
の欠点を持っている。
SX-WINDOW はウインドウのアイコン
化ができない点を除けば,とてもいい線をい
っていると思う。
まあ,この詳細な比較は来月号にでもレポ
ートするとして, SX - WINDOW がどのウイ
ンドウシズテムにも勝てないところといえば,
アプリケーシヨンがないことだ。
SX - WINDOW でもソフトが欲しい。そ
ういうわけである。
•ウインドウアブリの原点は7
まず何から始めよう力 1 。「大人のための X 6
8000」などというあやしい連載を抱える身と
しては,一応,ビジネスソフト(と一般的に
いわれている類のソフト)が欲しいといって
おくべきだろうが,ゲーマーとしての私はや
はりアミューズメント系のウインドウが欲し
いのである。こういうときは「大人のための
SX - WINDOW 用ゲーム」が欲しいといっ
ておけば事足りるといゲことになっているの
で,そういっておこう。しぶいウインドウデ
ザインには大人のためのゲームが似合うのだ。
へへへ。アダルトゲームといってもいいそ、、。
さて, 「 SX エンターテイメントキット」と
いうのは, SX - WINDOW 用の小さなゲー
ムがいっぱい詰まったデイスクのことである。
米マイクロソフト社が MS - WINDOWS 用に
出している 「 MS エンターテイメントキット」
から名前を抨借した。このディスクには,小
さなウインドウひとつで済むようなちょっと
したゲームがいくつも収められている 。 「He
x TETRISj なんていう,四角ではなく六
角形のブロックを使うやつも収められている
が,傑作はマインスイ ーノぞ一っていうパズル
だ。
暇潰しに最適な,ちょっとしたソフト。そ
れでもって,そいつに収められたソフトはみ
な他愛ないもの。が , Yet Another Col din
n にみんなが ハマった ように,ああいう舉純
なゲームにこそ真髄が隠されているのだ。今
こそ,原点に帰るべきだ。
•要するにゲーム集
「 SX エンターティメントキット計画」は,
そういうソフトを Oh ! X で用意しようという
温かい計画である。あくまでも計画である。
用意できるかどうかはまったくわからない。
なぜなら,キットに収めるゲームは,読者
から募集するからである。私は作らないで
(作ってみたいとは思っているが),ただ,投
稿を待っているのである。
どんなソフトが向いているか。
小さなウィンドウで済むもの。立ち上げた
まま,いつもは裏に_、しておき,やりたくなっ
たらアクティブにする。
、ラムズなんて最適。
ぼおっと,マウスひとつで遊べるもの0
先月ディスクに入っていた,クロンダイク
なんかはそうだ。そのテのカードゲームもい
いかもしれない。ポーカーなんかのギヤンブ
ル系ソフトも見逃せない0競馬ソフトを作っ
て,実際の レースは 裏で マルチ タスク,なん
てのも楽しそうだ。競馬はつねに行われてお
り,ときどき,競馬ウィンドウをアクティブ
にして,次の レースの 馬券を買うのだ。
反応速度に結果が左右されないもの。
マスター マインド 0 じっくり頭を使うやつ
だね。リバーシでもいい。
ショートプロなもの。伝統的な用語を使う
なら,ピコピコゲームなもの。昔懐かしいゲー
ムの復活の場とするのもよかろう0
目いっぱいキッチュに,ウィンドウを52個
開いて,神経衰弱をするとか,百枚開いて,
百人一首するとか,ばかばかしいのもいいか
もしれない。
さらにその上をいって,ポコポコ開くウィ
ンドウを探してそこをクリックするモグラた
たきとか(失敗してほかのウィンドウを開い
てしまったら,そいつがアクティブになって,
肝心のモグラウィンドウが見えなくなって困
るっていうのもいい)。
個人的には,早撃ちゲームなんかもいいな。
ウィンドウの中に扉がいくつかあって,どこ
かが不意に開く。出てきたのが悪人だったら,
マウスカーソル (もちろん照準の形だ)を動
かして擊つ。遅いと撃たれる。このテのやつ
が結構好きだったりするのだ。
氺
とりあえず,些細なものでもできたら投稿
する。これが始まりである。
始まりがあるからといって終;わりがあるわ
けでもないのだが,いいものが集まったら,
なんらかの形でディスクに収め, 「 SX エンタ
—テイメントキット」として世に出すことに
なろう。
その中身は多くの SX-WINDOW ューザ
一のハードディスクに 収められ,わずかな暇
の相手となるだろう。
受験生も社会人もサラリーマンもが一んば。
120 Oh ! X 1991.2.
X 68000 CARD □闩 V 用カードゲーム
スロットポー カ
Hanyu Junya
羽生純也
お待たせしました。いよいよトランプゲームの真打ち,ポーカー
の登場です。ボーナスゲームで得点倍増にチヤレンジすれば一獲
千金も夢じやないそ。今回はひとり遊びですが,コンピュ^^!
の対戦版もぼしいですね。誰か挑戦する人はいま、せんか7
ひとり遊び用のポーカーです。 浅いにもかかわらず,ポーカーはカードギ
X - BASIC からリスト1を入力してくだ ヤンブルの代表格として扱われています。
さい。実行の際には CARD . FNC または C
ARD 2. FNC の拡張されている必要があり
ます。 CARD . FNC をお痔ちの方はもう
お馴染みでしようから,ここでは1月号で
発表された CARD 2. FNC の組み込みにつ
いて解説しておきましよう。
まず,1991年1月号の付録ディスクを展
開したものを用意します。ディスク3の中
に CARD 2 というデ'イレクトリがあります0
コマンドシェルを立ち上げ,
CD CARD 2
を行ってください。
CARDDRV TR.DAT
でドライバを組み込みます。
次に BASIC のあるディクトリに移動して,
COPY B : CARD 2. FNC
のようにして CARD 2. FNC をコピーしま
す。あとは BASIC . CNFCCARD 2 .FNC
を加えて, CARD 2. FNC を組み込んでく
ださい。これで CARDDRV が使用できます。
ポーカーとは
さて,あまりにも有名なゲームですから
ポーカーのルールについては特に解説する
必要はないでしよう。
トランプゲームのなかでは比較的歴史が
「ポーカーという名前が初めて記録され
たのは1829年である。ポーカーはニューオ
リンズに発生して,スチームボートの酒場
とともにミシシツピ河をさかのぼっていっ
た(トランプゲーム大百科より抜粋 ) j
ポーカーの起源としてペルシアのカード
ゲーム 「アスナス (As Nas )」 や長い歴史
を持つ「ブラッグ ( Brag )」 が挙げられるこ
ともあります力す,定かではありません。アメ
リカで発生したというのは確かなようです。
初期のストレートポーカー,配られた5
枚のカードで役を競うものから,手札のい
くつかを交換(ドロー)できるドローポー
カーが'完成されました。ふつうにポーカー
といえばドロー ポーカーを指*します力す,さ
らにギャンブル志向のスタッドポーカー,
カード交換はなしで伏せられた1枚のカー
ドに1枚ずつオープンカードを加えていく
タイプのポーカーなども発生しています。
あまりにも多様に変化するのでいまだに公
式ルールを持っていません。いずれにせよ,
「ポーカーフェイス」というように,技術よ
りも ハッ タリがこのゲームの信条でしよう。
ちなみに「ポーカーという名前はフラン
スのゲームポーク ( Poque ) からくると
も,または「イッヒポッへ (Ich Poche ) 」
といってプレイヤーがテーブルを叩くこと
によってパスを表すドイツのゲーム,ポッ
ホシュピール ( Pochspiel ) に由来すると
も考えられる j そうです。
今回のゲームについて
今回のプログラムはひとり遊び用ですか
ら,もっぱら役作りを目的としたゲームに
なります0要領はゲームセンターにあるス
ロットポーカーと同様です。配られたカー
ドのうち HOLD するものを指定してカー
ドを交換し,できた役の強さで賭け金の倍
率が変わります。
役はふつうのポーカーハンドからワンぺ
アを除いたものが有効で,役が成立すると
ハイ&口一のボーナスゲームにチヤレンジ
できます。成功すれば配当が2倍,失敗す
れば配当はなし。持ち金が10000を超える
とゲームクリアとなります。
なお,一部の役の判定が通常のポーカー
とは異なります0フラッシュとストレート
の部分ですね。ポーカーではふつう,スト
レートフラッシュ,フオーカード,フルハ
ウス,フラッシュ,ストレート,スリーカ
ード,ッー-^ア,ワンペア,ブタという順
の役の強さになっています。これらが配牌
時 (?) に成立する確立はそれぞれ,0.0015
%,0.024%,0.144%,0.1956%, 0. 392
%, 2.15%,4.75%,42.2%,50.1% とな
っています。これでいけば,フラッシュは
ストレートより強い役であっても不思議は
ないのですが,配牌で大きな役が成立する
ことを期侍してもしかたありません。その
役を狙う気になるところ(麻雀でいえば聴
牌時)からの成功確率ではフラッシュとス
トレートは逆転しますから,このほうが実
用的といえるかもしれません。
この作品が投稿されてきたときには CA
RD 2. FNC も CARDDRV . X もありません
でしたが,今回試してみるとそのままでコ
ンパイルできました。これまで発表された力
ードゲームの多くが一部変更しないとコン
パイルできないことを思えば,非常に素直
にプログラムされている作品だといえます。
ただし,コンパイルするときは適当な個
所に適当にウェイトを入れてください(そ
のままでも遊べますが)。
スロット ポーカー 121
/*
/* THE_POKER
/»
int kin,kake,up,max
int c_cnt,round
int nx,Bi 7 ,Xty > lb, rb
■tr pama= N 9S9vl5c" , atari= M 956vl5o4120aeae M ,wake="®56vl5
dim 露 tr y«ku(7)=("ROYAL STRAIGHT FLUSH",
"STRAIGHT FLUSH",
••FOUR CARD",
"FULL HOUSE",
"STRAIGHT",
"FLUSH",
"THREE CARD..,
"TWO PAIR")
dim int ritau<7}={500 , 100 , 40 , 10 , 7 , 5,3 , 2}
dim int zahyou(4)=(88, 160,232 ,304, 376)
dim int tmp(S t l),cc(5),c(51)
dim str m(12)
init<>
nv_init()
gamen()
jyunbi()
while 1
repeat
shuffle()
c hyouji(0)
bet()
game()
roundsround+1
until kin=0 or kin>= 10000
over()
endwhile
end
func bet()
/« お金を賭ける
int
s_hyouji<1,7,8)
if kin> = 1000 then up= 100 else up=10
if kin<=100 then max=50 else max=kin/2
repeat
rasstat{x,y,lb,rb)
if lb=-1 and rb = 0 and kake + up<=max and kin-up> =0 th
440 kin=kin-up : m_hyouji()
450 kake=kake+up : k_hyouji()
460 if kake<=100 or (kin>=10OO and kake<=10OO) then w
ait(2)
470 }
480 if lb=-l and rb=-l then {
490 kin = kin + kakc : m_hyouji()
500 kake=0:k hyouji ㈠
510 }
520 until lb=0 and rb=-1 and knke>0
530 for i=0 to 7
540 y.hyouji(i,0)
550 next
560 s_hyouji(0,0,0)
570 endfunc
580 /t
590 func game ( ) /* ゲームをする
600 int i,rank
610 c_hyouj1(1)
620 a_hyouji(2,9 , H)
630 rank = hantei ()
640 if rank<>8 then y_hyouji(rank,1)
650 repeat
660 mspos(mx,my)
670 m93tat(x f y,lb r rb)
680 if lb=-l then (
690 for is0 to 4
700 if nx>=zahyou(i) and mx<szahyou(i)+47 then {
710 hold ⑴
720 break
730 1
740 next
750 a«btn(0•0•0)
760 }
770 until rbs-1
780 for isO to 4
790 if cc(i)=0 then (
800 c put(88>72«i,256,e) : wait(2)
816 )
820 next
830 for i=0 to 4
840 if oc(i)=e then {
850 t 25% t o[cjcnX.) > :oto<p« ■ 纛 }
860 co(S)so(i) : o(i)*c(c_ont) : c<c_cnt>*cc<5>
870 a cntso cntfl : wait(2)
880 )
890 next
900 if rank <>8 then y_hyouJi(rank.O)
910 rfink=h«nt«i< )
920 if rank<>8 then {
939 y hyouji(rank,l)
940
950
960
970
980
990
1000
kake = ritsu(rank) 拿 kake:k_nyouji ()
doublet)
kake=0:k_hyouji()
s_hyouji?0i0•0)
locate 12,23:print spaces(40)
jyunbi()
1010 endfunc.
1020 /*
1030 func hold(no : int) /
1040 if cc(no)=0 then {
cc(no)=1
locate 12+no»9,23 : print
)else {
cc(no)=0
locate 12+no»9,23:print
取っておくか « ベる
1050
1060 locate 12+no<9 ,23: print "HOLD"
1070
1080
1090
1 100 )
1110 endfunc
1120 /*
1130 func hantei ( ) / * 役の利定
1140 int i,j
1150 for i=0 to 4
1160 tmp(i,0)=c(i)/13
1170 tmp(i,1) : c(i) mod 13
1180 if tmp(i,1)=0 then tmp(i,0)=tmp(i,0)-1:tmp(i,1)=13
1190 next
for i:0 to 3
for jsi+1 to 4
if tmp(i,1)>tmp(j,1)then (
tmp( 5,0) = tmp( i , 0 ) : tmp( 5 ,1)=t.mp( i •1)
tmp(i,0)=tmp(j,0) : tmpCi»1)=tmp(j,1)
tmp(j,0)=tmp(5,0):tmp(j,l)=tmp(5,1)
50
60
70
80
190
1200
1210
1220
1230
1240
1250
1260
1270
1280
1290
1300
next
next
if mark()=1 then {
if tmp(0 f 1) = 1 and tmp(l,1
mp(3,1) = 12 and tmp(1,1)=13 then
)=10 and tmp( 2,1}=
mo
1320
1330
m()
1350
13(10
1370
13H0
1.VJ0
1100
1410
1420
1430
1440
1450
1460
1470
1480
1490
1500
1510
1520
1530
1540
1550
return(0)
i f strato ()=1 th<?n return { l )
return(5)
It* «t.mto ( ) = 1 t hon return (*1 )
sw i t.oh aamo ( 0 )
caa«* 3 : ro. turn (2 )
caa« 2 : i f ( 3) = 1 then return (.'J J
return(G)
case 1 : switch same(2)
case 2 : return(3)
case 1 : return(7)
case 0:if aame< 3)=1 then return(7)
return(8)
endswitch
case 0 : switch same ⑴
case 3 : return(2)
case 2 : return(6)
case 1:if samel 3) = 1 then return(7)
return(8)
case 0:if same(2)=2 then return(6)
return(8)
endswitch
endawitch
1560 endfunc
1570 /%
1580 func mark()
1590 int i
for 1=0 to 3
if tmp( 1,0) <>tmp( i-f 1,0) then return(0 )
next
return(1)
1640 endfunc
1650 /t
1660 func strate()
1670 int i
for i=0 to 3
if abs (tmp( i , 1)-tmp( i-f 1,1)) <> 1 then return{0 )
next
if aba( tmp( 0 , 1 )-tmp( 4,1))=4 then return( 1)
return(0)
1730 endfunc
1740 /t
1750 func same(at;int)
int i•cnt=0
for i=st+1 to 4
if tmp(st , 1)=tmp(i,1)then cnt=cnt+1
next
return(cnt)
endfunc
/t
func doublet) ハ
int end_f = 0
s_hyou ji < 0 , 0 , 0 I
B_hyou j1(3,4,10)
repeat
1600
1610
1620
1630
1680
1690
1700
1710
1720
1760
1770
1780
1790
1800
1810
1820
1830
1840
1850
1860
1870
/* マークが揃っているか « ベる
/• ft 字が並んでいるか綱べる
/« 同じ数字が何抆あるか«ベる
ボ ■
スゲームをするか
■ J スト1
0 0 〇 〇 0 0 0 〇 0 〇 0 0 〇 0 〇 0 0 〇 0 〇 〇 0 〇 〇 〇 〇 〇 0 O O O OOO 0 O 0 〇 〇 〇 〇 〇 〇 (
12 3 4 5 6 7 890123456789012345678901234567890123
r 1111111111222222222233333333334444 n
c e
122
Oh!X 1991.2.
► NET を間局してわかったんですけど. NET の運常讶理って大変なんですね。でも,ちら
ほらと会 H が増えてボードにいっぱい许き込みがあると.とてもうれしくなってしまう今
日この頃です。 小板掂敏弘 (21) 福岛県
1880 msstat(x,y y lb,rb)
1890 if lb=-l then end_f=l
1900 while end_f=1
1910 end_f=bonus()
1920 endwhile
1930 until rb=-l
1910 kin=kin+kake:m_hyouji()
1950 endfunc
1960 /*
1970 fiinc bonus()
ポーナスゲ •
1980 int cl,c2
1990 s^hyouji(0,0,0)
2000 locate 12,23:print spaces(40)
2010 fill(88,2S 6,423 ,351,8)
2020 c_put(160,256 ,c(c_cnt) J :ot.o( pa»a) : wai t ( 2 ) : c t soheck(c{
c_cnt)):c_cnt=c_cnt+1
•2031) c_put(30T, 256 ,0) : oto(pnsa) : wa i t ( 2 )
«_hyouJi(3,11,12)
wait(5)
click()
c_put(304 f 256,o(c_cnt)):oto(pasa) : wait(2):c2=check(c(
2040
2050
2060
2070
c_cnt))
2080 if (lb=-l and cl<c2) or (rb=-l and cl>c2) then
oto(atari)
kake=kake<2:k.hjrouji()
% hyouji(0,0,0)
• 一 hyouji(6,5,10>
click()
if lb=-l then c_cnt=c_cnt+1 : return{1)
if rb=-l then return(0)
else {
if cl=c2 then {
c_cnt=c_cnt+1
oto(wake):wait(5)
return ⑴
}
2090
2100
2110
2120
2130
2140
2150
2160
2170
2180
2190
2200
2210
2220
2230
2240
kake=0:rb=-l
return(0)
2250 endfunc
2260 /t
2270 func check(no;int)
力 .
/* ゲーム終了?
2280 no=no nod 13
2290 if no=0 then no=13
2300 if no=l then no=14
2310 if c_cnt=51 then c_cnt = rnd{)*52
2320 return(no)
2330 endfunc
2340 /t
2350 func over()
2360 fill<88, 256,423 ,351,8}
int i
apage(0)
if kin>= 10000 then win()
8_hyouji(5,0,10)
click()
if rb=-l then (
els
apage(0) : wipeU : apage(1):wipe()
color 3
mouae(0)
end
ドのチヱック
2370
2380
2390
2400
2410
2420
2430
2440
2450
2460
2470
2480
2490
2500
2510
2520
2530
2540
2550
kin= 100 :m_hyouji()
round=0
s_hyouji(0,0,0)
for i=0 to 4
locate 23,18+i:print spaces(IB)
next
wipe() : apage(1)
2560 endfunc
2570 ft
2580 func win() /* W ち
2590 fill(152,23 2,359,383,4)
symbol ( 166,244 ,CONGRATULATION : ,1
print" ラウン ド 数"
2600
2610
2620
2630
2640
print usin ぐ "#..; round
print ••最終 MW 餌 "
print using"9<#####";kin
locate 23,18
locate 38,19
locate 23,21
locate 34,22
2650 endfunc
2660
2670 func cl ick( ) / •ボタンを If す
2680 repent : msstat(x,y,lb,rh) : untii Lbfrb< >0
2690 endfunc
2700 /♦
27 10 rune c..hyouj i ( ptn ; int) /* カードの衣示
2720 int i
for i=0 to 4
if ptn=0 then (
c_put(8H+i»72,256,0)
} else {
c_put(88+i* 72,256 ,c(i))
r15,0)
2730
2740
2750
2760
2770
2780
2790
2800
oto(pasa) : wait(2)
next
2810 endfunc
2820 /t
2830 func y_hyouji(no;int,ptn;int)
/* S の表示
2840 if ptn then color 15
2850 locate 28 t nof1
2860 print using " t &. 5¢¢*#¢¢
u(no),ritsu(no ) »kake
2870 color 7
2880 endfunc
2890 /♦
2900 func s_hyou j i(ml ;int,m2;int,m3; int) / * 説明の表示
2910 locate 15,26:print ro(ml)
2920 locate 15,27 : print m(m2)
2930 locate 15,28:print m(m3)
2940 endfunc
2950 ハ
2960 func m_hyouji ( ) /* 持ち金の表示
2970 locate 19,9: print using "
2980 endfunc
2990
3000
3010
3020
3030
3040
3050
3060
3070
3080
3090
3100
3110
3120
3130
3140
3150
3160
3170
31H0
3190
3200
:<210
32iJ0
3230
32-10
3250
3260
3270
3280
3290
3300
3310
3320
3330
3340
3350
3360
3370
3380
3390
3400
3410
3420
3430
3440
3450
3460
3470
3480
3490
3500
3510
3520
3530
3540
3550
3560
3570
3580
3590
3600
3610
3620
/<
func k_hyouji ( ) /* IS け金の表示
]ocate 56,10:print using ;kake
endfunc
/*
func jyunbi () ハ次の準谁
int i
c_cnt=5
for i=0 to 5
tmp(i,0)=0 : tmp{i,])=0
cc(i)=0
next
for i=l) to 7
y_hyouji (i,0)
next
endfunc
/*
func oto(pt.n ; str) /« 効 ili H
»n_i n i t ( ) : m_1.rk (1,ptn ) : m_p] ay ()
end func
func wa i t (w; i n t) /t ウエ
int i
for i =0 to w< 10(): next
endfunc
/*
func init()
screen 1,1,1,1
console ,,0
apage(1) : vpage(3)
msarea(88, 256,423, 351)
mouse(4) : mouse(1)
m_assign(1,1):m_alloc(1,
color 7
rnndomize (val(midS(timeS,4 t 2)-frightS(time$ t 2)))
endfunc
ft
func nv_init() / t 変数の初期詨定
for i=0 to 51
c(i)=i+l
next
round=0 : kin=100 : kake=0 : up= 10 : max=50
0 ) = f, "
1)=”賭け金を決めて下さい,”
2> = " カードを選んで下さい •"
3) = M D O U B L E UP"
4) =" に执敝しますか?"
5い••もう一度、执睢しますか?”
6 >=” 賭け金は倍になりました,”
左ボタン • 賭け金を增やす”
決定"
HOLD 、 CANSEL”
YES 右ボタン . N O"
BIG..
SMALL"
/* 初期設定
, 100 )
="右ボタン
=" 左ボタン
10 >=••左ボタン
1U =" 左ボタン
12 )="右ボタン
endfunc
/»
func shuffle ( ) /拿シャッフル
int i , a , b,k
for i=0 to 99
a=rnd() #52 :b=rnd() *52
k=c(a) : c(a)=c(b):c(b)=k
next
endfunc
3630 /t
3640 func gamen() /t B 面描面
3650 fill(0,0,511,511,3)
3660 fill(0, 192,51 1,511,8)
3670 fill(112,408,399,471,0)
3680 box( 114,412,397 ,467,15)
3690 box(219,8,507,151,15)
3700 box(219,151, 507,183 ,15)
3710 box(5,8,214,112,15>
3720 box(5, 120,214 ,183,15)
3730 symbol <23 ,26, ’.THE" ,2,1 , 2,0 , 0)
3740 symbol<21,24,"THE", 2, 1,2, 13,0)
3750 symbol(23,50,"POKER” , 3 , 2,2•0 , 0 >
3760 symbol(21•48 , "POKER" , 3 , 2 , 2 , 13 , 0>
3770 locate 2,9:print "あなたの持ち金 $•*
3780 m hyouji()
3790 locate 29 , 10 :print け金 , , + spacet < 20 >+ " J 0
3800 endfunc
►授業で使うパソコンはすべて PC -9801 なので,友人はほばすベて PC -9801 を H っている。
意志を貰いて X 68000 を買ったのは f 突ひとりである。後悔はしていないがプログラムなどの スロットポーカー
授業では課越のやり商しが許されない(家でやれない)のでつらいです。
良崎洋 (22) 神奈川県
;yak
123
八クレポートとファイル関数
亀田雅彦 Kameda Masahiko
INTEGRAL XI の解説も今回でひとまずおしまい。ご迷惑をかけてきたバグを今
回で一気に追放しましよう。また, INTEGRAL 用の外部コマンドを作成したとい
う方はぜひ投稿お願いします。
読者の皆さん,約半年間のご愛読誠にあ
りがとうございました。なんと!ネタ不
足のため,今月をもちましてこの連載は終
了させていただくことになりました。今後
も単発の形式で, KAME - DOS のサボー
卜をしていくつもりです。お楽しみにね(ひ
そかにバージョンアップしてたりして)。
*
さて,それでは今月のお題目。
1) 現在までに発見されているバグ特集。
2) DOS らし〈入出力関数群。
という2つです。まずは 1) から。
八クだよ〜ん
どうも,おさわがせしてすみません。0
h ! X 1990 年12月号の「ごめんなさいのコー
ナ ー j に掲載されたものを含めて,4力所
ほどバグがありました。以下に,それぞれ
の症状と修正方法を示します。
•その1
12月号のバグです。
ホ症状
COPY コマンドでバイナリファイル (B
in ファイル)を上書きした場合,旧フアイ
ルのロードアドレス,実行アドレスが新フ
アイルのものに更新されずに残ってしまい
ます。
* 対策
お手持ちの 「 FDC . OBJ 」 を,12月号の
アセンブル リストの マシン語 データ部分の
ように書き換えてください。または今月の
変更用リスト3のように書き換えてくださ
い。そして,
SAVE “ FDC . OBJ ,,,& HD 000,
&HECFF
としていままでと同じようにセーブします。
マシン 語データを入力する際には,アドレ
スに注意してください。
籲その2
* 症状
ASCII セーブされたプログラムフアイ
ルを COPY して,その COPY したファイ
ルを今度は BASIC で LOAD しようとする
と,うまくいかないことがあります。
* 対策
アセンブル リストはリスト 1。 リスト 3
の変更でもかまいません。方法は「その1」
をご覧ください。
春その3
* 症状
XI フオー マツ トのサブデイ レクト リに
おいて,ファイルが8個までしか表示され
ませんでした。ただしそれは turboBASI
C で作られたファイルの場合です 。 KAM
E - DOS でサブデイ レクト リ下に コ ピーし
た場合は,8個以上あっても表示します。
また MS — DOS フォー マツ トの場合はまっ
たく正常に動作します。
* 対策
アセンブルリストはリスト2。リスト3
の変更でもかまいません。方法は「その1」
をご覧ください。
•その4
* 症状
「その3」に関連して, Oh ! X 8 月号に掲
載された 「 MD . X 1」 にも不備な点があり
ました。これで作ったサブデイレクトリに
turboBASIC でファイルを書き込むと,
正常に動作しないことがあります。
* 対策
「 MD . X 1」 の1380行を以下のように修
正します。
1380 k = l : i 0=256 : il =& HC 0 : d
= &HFF : RETURN
i
1380 k =16: 10=4096 : il =& HC 0 : d
= &HFF : RETURN
「 MD.Xlj は Oh ! X 1990 年 8 月号95, 96
ページに 掲載されています。
本**
こんなにバグばっかりで,本当になんと
お詫びしてよいやら。さすがにもう出尽く
したとは思うんですが……。
入出力関数
「 FDC . OBJ 」 内には,意外と有用なサブ
ルーチンも含まれているのですが,使い勝
手がよくありません。そこで, BASIC 力 1
らでも簡単に呼び出せるように,いくつか
の USR 関数を作ってみました。種類は8個。
FOPEN : & HC 000
FEOF : & HC 003
FGETC : & HC 006
FPUTC : & HC 009
FCLOSE : & HC 00 C
FREADS : & HC 00 F
FWRITS : & HC 012
FREAD : & HC 015
それぞれ,ファイルをシーケンシャルに
読み出すための関数です。(名前の由来は
X 68000 の X - BASIC )
ただしこのプログラムは,いわば DOS
コールの 拡張ですので, この 関数を使った
プログラムが DOS の外部コマンドである
必要はありません。つまり 「 FDC . OBJ 」
とこの関数ルーチンさえメモリ上にあれば,
普通の BASIC プログラムからでも DOS 機
能が使えるのです。
だいたいのコンセプトはわかりましたね。
それでは実際の使い方です。
使い方
「CLEAR & HCC 00」 を実行後,リス
卜4をマシン語入 カツールで 入力してくだ
さい。そして,
SAVEM “ FUNC . OBJ ,,,& HCCOO ,
&HCFFF
としてセーブします。この関数を使うため
には 「 FDC . OBJ 」 をロードして,初期化
しておく必要があります。 「 INTEGRAL .
X 」を LOAD , RUN してくた^さい。そし
て先ほどの 「 FUNC . OBJ 」 を LOAD しま
す。これで準備完了です。このあとで , 「CO
124 Oh!X 1991.2.
1
•
DE86
30
2
JKAME-DOS BUG-FIX3 *90/11/20
DE86
31
;
3
DE86
32
BEGIN2
4
;S-OS REOA
0E86
F5
33
PUSH AF
5
DE87
3A
70
DE
34
LD A,(WORKS)
6
#CRSRW EQU $E009
DG8A
B7
35
OR A
7
#FRWF EQU SE0A1
0E8B
28
0B
36
JR Z,SBG3
8
#EDD EQU $EB8F
0E8D
FI
37
POP AF
9
0E8E
AF
38
XOR A
10
ORG $D7E5
DE8F
32
70
DE
39
LD (WORKS),A
11
;
DE92
3B
10
40
LD A,$L0
12
JP NZ.BEGINl
0E94
32
8F
EB
41
LD (#EDD),A
13
DE97
C9
42
RET
14
DE98
43
15
ORG $DE70
0E98
44
SBG3
16
;
DE98
FI
45
POP AF
17
WORKS
0E99
32
8F
EB
46
LD (*EDD),A
18
DB 1
DE9C
C9
47
RET
19
DE9D
48
20
BEGIN1
DE9D
49
j
21
LD A,(#FRWF)
E3EA
50
ORG $E3EA
22
OR A
E3EA
51
;
23
JP NZ,#CRSRW
B3EA
CD
86
DE
52
CALL BEGIN2
24
LD A,1
B3ED
53
25
LD (WORKS),A
2466
54
ORG $E466
26
CALL #CRSRW
E466
55
;
27
LD A,0
2466
CD
86
DE
56
CALL BEGIN2
28
LD (WORKS),A
B469
57
29
RET
MMAND . Xlj その他,外部コマンドを
起動すると 「 FUNC . OBJ 」 は破壊されま
す。そのときは,
CLEAR &HCCOO
LOADM ” FUNC . OBJ ”
を実行して〈ださい。
マシン語の準備が完了したら,呼び出す
ための BASIC プログラムを作ります 。 DE
FUSRO - 7に上記のァドレスを定義して
使うのが簡単でしよう。具体的にサンプル
プログラムを見てみます。なお今月のプロ
グラムはすべて,ノーマル X 1( CZ -8 FB 01)
でも動作します。
氺
サンプルプログラム。以下のプログラム
は, 「 FUNC . OBJ 」「 FDC.OBJj が準備
されている状況で, ASCII ファイルを対
象に実行してください。 BASIC からダイ
レクトに RUN できます0対象ファイルに
正規の EOF がないと,うまく動作しない
ことがあります。
• リスト 5 (TYPE.BAS)
「 FREADS 」 のサンプル。ファイルの
中身を表示します。コマンドラインから T
YPE するのとほぼ同じです。ファイル名
は,プログラム中の1170行の ” Y : COPY .
■ UXM 亍 n ツヴその飞
DOC ” で指定します。
プログラムは,ファイル OPEN に始ま
り, EOF かエラー (PEEK ( v _ stop ) く > 0
でエラー有)になるまで,改行コードごと
に表示し続けます。読み込みの場合は CL
OSE はいりません。
• リスト 6 (COPY.BAS)
「 FGETC 」「 FPUTC 」 のサンプル。フ
ァイルのコピーをします。1170行,1180行
に,それぞれ読み込み/書き込みファイル
名を入れて実行してください。1文字ずつ
読み込み,改行以外のコントロールコード
を抜かして書き込みます(表示もする)。
リスト3デバッグ部ダンプリスト
リスト3の使い方
まず 「 FDC . OBJ 」 を LOAD します。
CLEAR & HD 000
LOADM “ FDC . OBJ "
次にマシン語入カ ツールな どを使ってリ
スト3を入力します(もちろん 「 FDC.OBJj
をメモリ上においたまま)。そして,いま
までの 「 FDC .0 BJ 」 の代わりに,変更済み
の 「 FDC .0 BJ 」 をセーブします。
SAVEM TDC . OBJ ", & HD 000,
&HECFF
これで,12月号と今月号の分のすべての
バグを直したことになります。
D565
C3
30
DE
: D1
SUM :
C3
30
DE
00
00
00
00
00
D9F1
DB15
CD
50
DE
: FB
SUM :
CD
50
DE
00
00
00
00
00
583F
D7E5
C2
71
DE
: 11
SUM :
C2
71
DE
00
00
00
00
00 !
B8D0
E3EA
CD
86
DE
i 31
SUM :
CD
86
DE
00
00
00
00
00 !
BE3F
E466
CD
86
DE
: 31
SUM :
CD
86
DE
00
00
00
00
00 8E3F
DE30
C2
42
E0
21
C8
DO
11
7E
2C
DE38
E0
01
0D
00
ED
BO
C3
68
B6
DE40
D5
00
00
00
00
00
00
00
D5
DE48
00
00
00
00
00
00
00
00
00
DE50
D9
C5
D5
79
B7
28
08
AF
82
DE58
CD
18
E0
13
0D
18
F4
D1
C2
DE60
Cl
D9
C3
22
DB
00
00
00
5A
DE68
00
00
00
00
00
0 0
00
00
00
DE70
01
3A
A1
E0
B7
C2
09
E0
IE
DE78
3E
01
32
70
DE
CD
09
E0
75
DE80
3E
00
32
70
DE
C9
F5
3A
B6
DE88
70
DE
B7
28
0B
FI
AF
32
0A
DE90
70
DE
3E
10
32
8F
EB
C9
11
DE98
FI
32
8F
EB
C9
66
SUM :
2C
22
EE
B2
CD
98
71
5B 0FFD
0000
0000
l 2
; KAME-DOS BUG-F1X2
0000
3
0000
4
; S-OS REDA
0000
5
E018
P
6
*LDDEA EQU $E018
DB22
0000
P
7
8
#LDMSBT EQU $DB22
DB15
9
ORG $DB15
DB15
10
;
DB15
CD 50 DE
11
CALL BEGIN
DB18
12
DB18
13
DE50
14
ORG $DE50
DE50
15
;
DE50
16
BEGIN
DE50
D9
17
BXX
DE51 C5
DE52 D5
DE53
DE53 79
DE54 B7
DE55 28 08
DE57 AF
DE58 CD 18 E0
DE5B 13
DE5C 0D
DE5D 18 F4
DE5F
DE5F D1
DE60 Cl
DE61 D9
DB62 C3 22 DB
DE65
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
PUSH BC
PUSH DB
BGLOOP
LD A,C
OR A
JR Z.BGSKIP
XOR A
CALL #LDDEA
INC DE
DEC C
JR BGLOOP
BGSKIP
POP DE
POP BC
EXX
JP ILDMSBT
リスト 2 デバッグその 2
E O 0 E 0 E
D E E D E D
1 1 9 10 9 0 0
7 A 0 0 7 0 0 7
2 1 A72B2DE29
ppp c 0 3BC33C33C
000009 IF 0555880000111458 AD025
000000 A80EEEEE 7777777777 :7:7£8:8!8
0000000 B 077777 eeeeeeeeee)e )e)e)e)e
00000 EEE0DDDDDDDDDDDDDDDDDDDD
INTEGRAL.XI 125
そのため,かなり遅いので注意しましよう。
• リスト 7 (CON.BAS)
「 WRITSj のサンプル。キーボートか
ら1文字ずつ入力して,ファイルに書き出
します0コントロールコードもそのまま書
き込みます。 CTRL + Z を入力した時点で,
ファイルの CLOSE をして終了です0 CLO
SE しなければファイルは作成されません。
• リスト 8 (FDUMP.BAS)
「 FREAD 」 のサンプル0指定ファイル
を16進ダンプリスト形式で表示します。プ
ログラムは,ファイルを16バイトごとに読
み込んで表示するだけの簡単なものです。
氺ホ氺
いずれのサンプルでも,指定ファイルが
ない,ディスクがささってないなどのエラ
一は Fl $, F 2$ でチェックします。
関数リスト
各々の関数の引数,戻り値をリストァッ
プします。なぉ,引数とは 「 USR ( )」
の括弧内の値であり,戻り値は 「 A $ = US
R < )」というときに A $ に入る値です。
引数,戻り値ともにすべて文字変数に統一
されています 0 マシン 語から コールす る場
合は, DE と B レジスタだけ USR 関数形式
にしてぉいてください。
•FOPEN
引数: CHR $(1)+ “ファイル名”
CHR $ (2)+ “ファイル名’’
戻り値:ファイル番号
引数の CHR $() の中の数字は,1が
READ OPEN , 2が ' WRITE OPEN のす旨
定です。ファイル名はフルパスで指定して
ください。
戻り値は「1か2か255」しかありませ
ん。実は KAME - DOS では,同時に開け
| リスト4 FUNC.OBJ
CCO0
C3
1C
CC
C3
P7
CC
C3
2B
IF
CC08
CD
C3
B1
CD
C3
32
CB
C3
94
CC10
99
CB
C3
FB
CB
C3
IB
CP
A3
CC18
ae
ee
ee
00
BD
S3
62
CF
71
CC20
3B
10
32
B5
BC
1A
13
05
83
CC28
FB
01
28
0C
FE
02
28
5B
B6
CC30
3E
FP
ED
SB
62
CF
12
C9
91
CC38
3B
07
32
8B
D1
CD
E6
CC
52
CC40
AF
32
81
D1
3B
01
32
80
24
CC48
D1
32
65
E0
C5
D5
CD
21
DO
CC50
D0
D1
Cl
3A
8C
E0
B7
29
DF
CC58
0F
68
3A
84
D1
47
7D
90
5A
CC60
6F
26
ee
19
EB
CD
24
DO
5A
CC68
3A
8C
Ee
B7
3E
FF
20
15
CF
CC70
AP
32
61
CF
32
65
CF
32
A9
CC78
66
CF
21
00
00
22
18
CC
5C
SUM:
FE
14
FC
73
4D
1C
9F
B5 3P0A
CC80
22
5D
CF
3E
01
ED
5B
62
37
CC88
CF
12
C9
3E
07
32
8C
D1
7E
CC90
CD
E6
CC
3E
01
32
65
E0
35
CC98
3E
02
32
80
D1
3E
03
32
36
CCA0
81
D1
C5
D5
CD
21
D0
D1
7B
CCA8
Cl
3A
8C
E0
B7
20
IE
68
C4
CCB0
3A
84
D1
47
7D
90
6F
26
78
CCB8
00
19
EB
3E
01
32
65
E0
BA
ccce
3E
02
32
80
D1
3E
03
32
36
CCC8
81
D1
CD
24
DO
3A
8C
E0
B9
るファイル数は READ ひとつと WRITE
ひと〇の計2つだけなのです。したがって,
READ ファイルのファイル番号は1 , W
RITE ファイルは2と決まっています。戻
り値が255の場合はエラーです。
• FEOF
引数:ファイル番号
戻り値: 2 5 5か0
ファイル番号はわかりきっていますが,
必ず指定してください。以下の関数も同様
です。戻り値が255のときは EOF (エンド
オブファイル)です0 0のときは,まだフ
ァイルに続きがあります0
•FGETC
引数:ファイル番号
戻り値: データ
データというのは「ファイルのデータ1
バイト」ということです。今回の関数群は,
内部に共通のファイルポインタを持ってい
て,それに従ってデータを読み出してきま
す。 FGETC の実行後は自動的にポインタ
が+1されます。ポインタを任意で動かす
FSEEK のような関数はありません。
エラーの場合は V_STOP (& HE 08 C ) が
0以外の数字になります。
•FPUTC
引数: データ
戻り値:不定
引数の1バイトデータをファイルに書き
出します。実行後,自動的にポインタは一
1されます。ほかは FGETC と同様です。
♦FC し OSE
引数:ファイル番号
戻り値:不定
WRITE ファイルを SAVE します0書き
込み時は必ず最後に CLOSE してください。
逆に READ のときは必要ありません。
•FREADS
CCD0 B7 3E FF 20 0B 21 00 00 : 40
CCD8 22 1A CC 22 5F CF 3E 02 : 98
CCE0 ED 5B 62 CF 12 C9 C5 3A : 53
CCE8 8B E0 4F 06 00 21 C0 EC : 8D
CCF0 09 7E 32 97 E0 Cl C9 F5 : AF
CCF8 C5 D5 E5 D5 1164 CF CD : 65
SUM: 56 B8 35 9B EA 09 FB 80 5D2B
CD00 06 CC 2A 18 CC 2B 2218 : 45
CD08 CC 2A 5D CF 23 22 5D CF : 93
CD10 D1 AF 12 32 65 CF 3A 64 : 96
CD18 CF 47 3A E7 EC B8 20 06 : 01
CD20 3E FF 12 32 65 CF El D1 : 67
CD28 Cl FI C9 F5 C5 D5 E5 DD : CC
CD30 E5 3A 65 CF B7 20 3E ED : 55
CD38 53 62 CF 2A 5D CF 7C B5 : 0B
CD40 CC 7C CD 3A 8C E0 B7 20 : 92
CD48 25 2A 18 CC ED 5B E3 EC : 4A
CD50 CD 2A E0 ED 5B DF EC 19 : 03
CD58 CD 12 E0 ED SB 62 CF 12 : 4A
CD60 2A 18 CC 23 2218 CC 2A : 61
CD68 5D CF 2B 22 5D CF DD El : 63
CD70 El D1 Cl FI C9 3E 09 32 : A6
CD78 8C E0 18 F2 3A 66 CF B7 : 9C
SUM: 28 F2 57 28 2F 6E 2F CC 3E13
CD80 28 06 3E 09 32 8C E0 C9 : DC
引数:ファイル番号
戻り値:読み込んだデータ数
データ (& HEE 00 〜)
ファイルポインタから,次の改行まで読
み込みます。戻り値はデータ数で,実際の
データは & HEE 00 〜に格納されています。
改行がみつからずに , 「EOF •エラー • 255
バイトを超えた」場合はそこまでのデータ
が格納されています。データに改行コード
は含まれません。
• FWRITS
引数: データ
戻り値:不定
FPUTC を複数バイト対応にしたもので
す。255バイト以下のデータを文字変数に
入れて,引数としてください。コントロー
ルコードも含めて,変数の長さ分だけは必
ず書き込みます。
•FREAD
引数:読み込む データ 数
戻り値:読み込んだ データ 数
データ (& HEE 00 〜)
ファイルポインタから,指定された数だ
けデータを読み込みます。実際のデータは
& HEE 00 〜です。データ中のコントロー
ルコードもまとめて読み出します0指定数
に達しないうちに 「EOF •エラー」 になった
場合は,そこまでのデータが入っています。
*
今月のプログラムは,読者の皆さんが自
分でプログラミングするときの役に立つよ
うに作りました。ファイル操作などで , M
S - D 0 S フオー マツ トを扱いたいときなど,
今月の関数を使ってみてください 。 BASIC
に限らず, マシン 語からでもコールできます0
それでは,この DOS がより広く使われる
ことを願ってこの連載を終わることとしま
しよう。
CD88
3E
07
32
8B
D1
3E
01
32
44
CD90
8C
D1
3A
61
CF
32
9C
E0
75
CD98
CD
0C
D0
3A
9C
E0
B7
2C
36
CDA0
06
3E
FF
32
66
CF
AF
32
8B
CDA8
61
CF
2A
9D
He
22
5D
CF
25
CDB0
C9
F5
C5
D5 E5
DD
E5
78
77
CDB8
B7
28
2E
2A
DF
EC
ED
4B
3A
CDC0
E3
EC
09
ED
4B
5F
CF
09
47
CDC8
1A
EB
CD
18
Ee
2A
1A
CC
DA
CD00
23
22
1A
CC
2A
5F
CF
23
A6
CDD8
22
5F
CF
AF
32
9B
E0
ED
99
CDE0
5B
E3
EC
B7
HD
52
CC
F0
DC
CDE8
CD
DD
El
El
D1
Cl
FI
C9
B8
CDF0
2A
5F
CF
22
9D
E0
3E
01
36
CDF8
32
8B
D1
3K
07
32
8C
D1
62
SUM:
6C
16
C2
75
61
3E
31
2F B162
CEO0
3E
02
32
9C
E0
CD
0F
CE
98
CE08
21
00
ee
22
5F
CF
C9
3E
78
CE10
CD
21
29
CE
32
7A
DB
22
8E
CE18
7B
DD
CD
0C
D0
3E
2A
21
88
CE20
A4
E0
32
7A
DB
22
7B
DB
83
CE28
C9
2A
DF
EC
ED
5B
E3
EC
D5
CH30
19
C9
F5
C5
D5
E5
DD
E5
18
CE38
1A
FE
02
20
39
11
64
CF
B7
CE40
3A
E8
KC
12
06
01
CD
09
FD
CE48
CC
CD
7D
CE
3E
01
32
9R
F0
CE50
E0
CD
F0
CD
2A
1A
CC
22
9C
126 Oh! X 1991.2.
CE58 86 D12100 い 0 22 88 D1:F3
CE60 3A 08 D1 E6 0J 3E 04 20 : 5C
CE68 02 3H 2C 32 82 DO 3E 02 : 24
CE70 32 80 D1 CD 15 D0 DD El : F3
CE78 El D1 Cl FI C9 2A DF EC : 22
SUM : 02 B9 2D 66 E6 0D CD 50 FD90
CE80 ED 5B E3 EC J9 ED 5B 5F : D7
CE88 CF 19 EB AF CD 18 E0 13 : 5A
CE90 2A E3 EC B7 ED 52 20 F3 : 02
CE98 C9 F5 C5 D 5 E5 DD E5 DS : D4
CEAO 06 FF 21 00 EE 1164 CP : 58
CEA8 3E 0112 CD 06 CC 1A 4F : 59
CEB0 3A E7 EC B9 2610 2A 18 : 38
CEB8 CC 2B 2218 CC 2A 5D CF : 53
CEC0 23 22 5D CF 18 2D 79 FE : 2D
CEC8 0D 20 IE 1164 CF 3B 01 : CE
CED0 12 CD 06 CC 1A FE 0A 28 : FB
CED81A 2A 18 CC 2B 2218 CC : 59
CEEC 2A 5D CF 23 22 5D CF 18 : DF
CEE8 OA 3A 8C E0 B7 20 04 71 : FC
CEF0 2310 B2 78 2F D112 DD : 4C
CEF8 El El D1 Cl FI C9 F5 C5 : C8
SUM : 8D IF 37 79 52 7E F8 5D 2ED7
CF0O DS E5 DD E5 78 B7 28 0C : DF
CF08 CD 09 CC 3A 8C E0 B7 20 : IF
CF10 031310 F4 DD El El D1 : 8A
CF18 Cl FI C9 F5 C5 D5 ES DD : CC
CF2C E5 D51A 47 21 00 EE 11 : 3B
CF28 64 CF 3E 0112 CD 06 CC : 23
CF3C 1A 4F 3A E7 EC B9 20 10 : 5F
CF38 2A 18 CC 2B 2218 CC 2A : 69
CF40 5D CF 23 22 5D CF 18 0A : BF
CF48 3A 8C E0 B7 20 04 7123 : 15
CF5C 10 D5 D11A 90 12 DD El : 30
CF58 El D1 Cl FI C9 00 00 00 : 2D
cF 6 e ee ee ee 00 00 ee ee : ee
SUM : 7B FE 75 46 BD D9 EB FF 510B
リスト 5 TYPE • 巳 AS
_ : 了
FOR INTEGRAL X (WITH FDC.OBJ)
By M.Kaffleda
*TYPE.BAS
1020 1
1030 CLEAR 4HCC00
1040 'LOADM "l:FUNC,OBJ .,
1050 DEFINT A-Z:v stop=&HE08C : p256=&HEE00
*NAME
* FOPBN USR(R(1)/W(2)
,FEOP USR(FILE NO.)
* FGETC USR(FILE NO.)
* FPUTC USR(DATA)
*FCLOSE USR(FILE NO.)
1 FREADS USR(FILB NO.)
*FWRITS USR(DATA)
1 FHEAD USR(LENGTH)
FILE NO.=l(READ)/2(WRITE)
1060
1070 DEFUSR0=8tHCC00
1080 DEFUSRlslcHCC03
1090 DEFUSR2=fcHCC06
1100 DEFUSR3 : &HCC09
1110 DEFUSR4=4HCC0C
1120 DEFUSR5=4HCC0F
1130 DEFUSR6=&HCC12
1140 DEFUSR7=4HCC15
1150 *
1160 »
1170 D1$=USR0(CHR $ ⑴ + ”Y:COPY.DOC">
1180 1
1190 F1$=LEFT$(D1$,1) : IF ASC(F1$)<>1 THEN 1290
1200 *
1210 E$=USR1(F1$+" H )
1220 WHILE ASC(E$)=0 AND PEEK(v atop)=0
1230 W$sUSR5(Fl$+ ,M, ) : L=A3C(W$)
1240 IF PEEK{v atop)=0 THEN PRINT MEM$(p256,L)
1250 E$=USR1 (fT*+"">
1260 WEND
1270 END
1280 *
1290 PRINT "ERROR!STOP
*RETURN
FILE NAME) FILE NO.
EOF(-l)NOT(0)
DATA
?
?
LENGTH , p256-
?
LENGTH , p256-
自分のファイル名にする
*EOF?
•FREADS
U スト B COPY. 巳 AS
1000
1010
1020
1030
1040
1050
1060
1070
1080
1090
1100
1110
1120
1130
1140
1150
1160
1170
1180
1190
1200
1210
1220
1230
1240
1250
1260
1270
1280
1290
1300
1310
1320
1330
• COPY.BAS
DEFUSR0=&HCC00
DEFUSR1=&HCC03
DEFUSR2=&HCC06
DEFUSR3=&HCC09
DEFUSR4=&HCC0C
DEFUSH5=&HCC0F
DEFUSR6=&HCC12
DEFUSR7=&HCC15
FILE NAME)
FOR INTEGRAL X (WITH FDC.OBJ)
’ By M.Kameda
CLEAR &HCC00
* LOADM "1 : FUNC.OBJ M
DEFINT A-Z : v_stop=&HE08C : p256=&HEE00
1 *NAME
FOPEN USR{R(1)/W(2)
FEOF USR(FILE NO.)
FGETC USR(FILE NO.)
FPUTC USR(DATA)
FCLOSE USR(FILE NO.)
FREADS USR(FILE NO.)
FWRITS USR(DATA)
FREAD USR(LENGTH)
* FILE NO.=1(READ)/2(WRITE)
D1$ = USR0(CHR$< 1> + "W:D0S3.RED” > ,自分のファイル名にする
D2$ = USR0 (CHR$ ( 2 ) + "Y : COPY . DOC") ,自分のファイル名にする
F1$=LEFT$(D1$,1):IF ASC(F1$)<>1 THEN 1330
F2$=LEFT$(D2$,1) : IF ASC(F2$)<>2 THEN 1330
E$=USR1 (Fl$ + ,t **)
WHILE ASC(E$)=0 AND PEEK(v_stop)=0 , EOF?
D$=USR2(F1$ + "") » FGETC
IF ASC(D$)<32 AND ASC(D$) 013 THEN 1290 ,改行以外の CTRL-CODE
IF PEEK(v_8top)=0 THEN PRINT D$ ; : W$ = USR3(D$ +"") » FPUTC
e$=usri<fT$+"_ ,>
WEND
W$=USR4(F2$ + .,") , FCLOSE
END
PRINT "ERROR! ,•: STOP
»RETURN
FILE NO.
EOF(-l)NOT(0)
DATA
?
9
LENGTH , p256-
9
LENGTH , p256-
*OPEN READ
^PEN WRITE
U スト 7 CON. 巳 AS
1000 '
1010 'CON.BAS FOR INTEGRAL X (WITH FDC.OBJ)
1020 * By M.Kameda
1030 CLEAR &HCC00
1040 1 LOADM , •1:FUNC. OBJ
1050 DEFINT A-Z : v_stop=«cHE08C : v_mac=4HB097 : a_eof=4HECE7
1060 ' *NAME 拿 ! IETURN
1070 DEFUSR0=tHCC00
1080 DEFUSRU&HCC03
1090 DEFUSR2=AHCC06
1100 DEPUSR3=&HCC09
me DEFUSR4=&HCC0C
1 FOPEN USR(R(1)/W(2)
*FEOF USR(FILE NO.)
* FGETC USR(FILE NO.)
* FPUTC USR(DATA)
, FCLOSE USR(FILE NO.)
,FILE NAME) FILE NO.
EOP(-l) NOT(0)
DATA
1120 DEFUSRS = &HCCOF * FREADS USR(FILE NO.)
LENGTH , p256-
1130 DEFUSR6=&HCC12 'FWRITS USR(DATA)
1140 DEFUSR7 = &HCC15 * FREAD USR<LENGTH)
1150 , FILE NO.=l(RBAD)/2(WRITE)
LENGTH , p256-
INTEGRAL.XI 127
1160
1170 D2 拿: : USR0<CHR 黎 ( 2> + "Y:COPY.DOC"> ,自分のファイル名にする ,OPEN WRITE
1180 M=PEEK(v mac ) : IF M=2 OR M=4 THEN CR^=CHR$<13,10> ELSE CR$=CHR$(13)
1190 1 MS-DOS XI
1200 F2$=LEFTt(D2$,l):IF ASC(F2$)<>2 THEN 1350
1210 *
1220 REPEAT
1230 S$=" W : D$=""
1240 REPEAT
1250 S$=S|+D 拿
1260 D$sINKBYt<U:D=ASC<D$}
1270 PRINT D 拿:
1280 UNTIL D=26 OR D=13
1290 IF D=13 THEN S$=St+CRt
1300 W$rUSR6(S|)
1310 UNTIL D:26
1320 W$=USB4(P2»4"")
’1 行入力
*13..[RBTJ
•26. .CTRL+Z
*PWRITS
*FCLOSE
1330 END
1340 *
1350 PRINT ” ERROR!STOP
■ J スト日 FDUMP.BAS
leee
me
1620
1030
1040
1050
1060
1070
1080
1090
1100
1110
1120
1130
1140
1150
1160
1170
1180
1190
1200
1210
1220
1230
1240
1250
1260
1270
1280
1290
1300
1310
1320
•FDUMP.BAS FOR INTEGRAL X (WITH FDC.OBJ)
* By M.Kameda
CLEAR &HCCee
* LOADM "1 : FUNC.OBJ M
DBFINT A-Z : v_Btop=kHE08C : p256=iHBK00
' 拿 NAME
DEFUSR0=4HCC00 »FOPEN USR(R(1)/W(2)
DBFUSR1=4HCC03 *FEOF USR(FILB NO.)
DBFUSR2=ftHCCe6 1 FGBTC USR(FILB NO.)
DKFUSR3=4HCC09 'FPUTC USR(DATA)
DKFUSR4=4HCC0C *FCLOSE USR(FILB NO.)
DBFUSR5=liHCC0F 'FRBAD8 USR(FILB NO.)
DBFUSR6=4HCC12 'FWRITS USR(DATA)
DBFUSR7=fcHCC15 ’FREAD USR(LENGTH)
* FILE NO.=l(RBAD)/2(WRITB)
*RETURN
FILE NAME) FILE NO.
EOF(-l)NOT(O)
DATA
?
?
LKNGTH , p256-
o
LENGTH , p256-
D1$=USR0(CHR$(1) + "V : COPy.DOC") •自分のファイル名にする
F1$=LBFT$(D1$,1):IF ASC(F1$)<>1 THEN 1320
K$=USR1(F1»+"")
WHILE ASC(B$)=0 AND PEEK(v atop)=0
Wt=USR7(CHR$( 16)) : L=ASC(W$)
FOR 1=0 TO L-l
PRINT RIGHT$("0 ,, + HBX$(ASC(MEM$(p256 + I > 1))), 2 ) ; ,f M ;
NEXT
PRINT TAB{49) ; :PRINT#0"/ " ; MEM)(p256,L)
B$=USRl(Fl$ + , '")
WEND
END
i
PRINT "ERROR;":STOP
•EOF?
*FREADS
| リスト 9 FUNC.RED
0000
1
Ifunc.reu
CC18
♦
61
;
CC77
32
66
CP
121
LD (BOR),A
0000
2
CC18
00
00
62
FPOT1 DW 0 ;R
FPOT2 DW 0 ;R
CC7A
21
oe
00
122
LD HL t 0
0000
3
;
WITH KAME-DOS
CCIA
00
00
63
CC7D
22
18
CC
123
LD (FPOTl) f HL
0000
4
;
Vor 1.0
CCIC
64
;
CC80
22
5D
CP
124
LD (INBP1),HL
eoee
5
; FOR S-03 REDA
CCIC
65
CC83
3E
ei
125
LD A v l
eeee
6
CCIC
68
;
CC85
126
ERRRETR
ccee
7
org 黎 ccee
CCIC
67
;FOPEN
CC85
ED
5B
62 CF
127
LD DB,(USRWK)
LD (DE),A
CCO0
8
CCIC
68
;(R,W)-(KILBNAME)
CC89
12
128
D080
P
9
tZOKU
EQU $0080 ;POKB ADR.
CCIC
69
;
CC8A
C9
129
RET
D180
P
ie
#00
BQU $D180
CCIC
70
OPBNl
CC8B
130
D181
P
11
#OP
EQU $D181
BQU $0182
CCIC
ED
53
62 CF
71
LO (USRWK).OB
LD A»$10
CC8Q
131
OPENW
D182
P
12
♦ FCR3
cc 2 e
3B
10
72
CC8B
3K
07
132
LD A,7
0184
P
13
IYBN
BQU 90184
CC22
32
E5
BC
73
LD (4B3CP) 9 A
CC8D
32
8C
Dl
133
LD (IDDRVf2) 9 A
0186
P
14
«FSZL
EQU $0186
CC25
1A
74
LD A 9 (DB)
CC90
CD
E6
CC
134
CALL SMACDN
D18A
P
15
IDDRV
EQU SD18A
CC26
13
75
INC DB
CC93
3E
ei
135
LD A.l
E054
P
16
tFLMM
BQU IB054
CC27
05
76
DBC B
CC95
32
65
BO
136
LD (ISBDR),A
E065
P
17
ISBDR
BQU IB065
CC28
PB
01
77
CP 1
CC98
3R
02
137
LD A,2
卵68
P
18
IP 細
EQU $Ee68
CC2A
28
ec
78
JR Z.OPBNR
CC9A
32
80
Dl
138
LD (IOD).A
B078
P
19
#FBYT
BQU $Ee78
CC2C
FB
02
79
CP 2
CC9D
3B
03
139
LD A,3
E08C
P
20
ISTOP
BQU tB08C
CC2B
28
5B
80
JR Z.OPBNV
CC9F
32
81
Dl
M0
LD (IOP),A
E08B
P
21
»DN
EQU $B08B
CC30
3B
FF
81
LD A # $FF
CCA2
C5
141
PUSH BC
B091
P
22
#BF
BQU $E091
CC32
BD
5B
62 CP
82
LD DB.(USRWK)
CCA 3
D5
142
PUSH DE
B097
P
23
IMAC
BQU $8097
CC36
12
83
LD (DB),A
CCA4
CD
21
DO
143
CALL •PREOP
E09B
P
24
• BDR
#IOFC
BQU 拿 E09B
CC37
C9
84
RET
CCA7
Dl
144
POP DB
E09C
P
25
EQU $E09C
CC38
85
CCA8
Cl
145
POP BC
B09D
P
26
#MSBT
BQU $B09D
CC38
86
OPENR
CCA9
3A
BC
Be
146
LD A,(fSTOP)
OR A
JR H2.RBTVW
ECC0
P
27
&HAC4
BQU 拿 Bcce
BQU SECCO ♦:
CC38
3B
07
87
LD A f 7
CCAC
B7
147
BCB3
P
28
4BS1Z
)5
CC3A
32
8B
Dl
88
LD («DDRVtl)»A
CCAD
2e
IB
148
BCB5
P
29
ABSCP
EQU *ECC8+37
CC3D
CD
B6
CC
89
CALL SMACDN
CCAP
68
149
LD L»B
BCB7
P
3e
4B0F
BQU »ECC0+39
CC40
AP
90
XOR A
CCBO
3A
84
Dl
159
LD A,(»YBN)
ECE8
P
31
&E0F3
BQU $BCC«^4e
CC41
32
81
Dl
91
LD (IOP).A
CCB3
47
151
LD B,A
BCDF
P
32
ISBUFF
BQU $BCDF
CC44
3E
61
92
LD A,1
CCB4
7D
152
LD A t L
BB0e
P
33
P256
BQU IEE0O
CC46
32
80
Dl
93
LD (IOD) f A
CCB5
9e
153
SUB B
CC00
34
CC49
32
65
se
94
LD (ISBDR),A
CCB6
6F
154
LD し, A
6003
P
35
IDLFAT
BQU 攀 BO03 :
;CALL ADR.
CC4C
C5
95
PUSH BC
CCB7
26
ee
155
LD H v 0
E012
P
36
ILDAHL
BQU 9E012
CC4D
D5
96
PUSH DB
CCB9
19
156
ADD HL # DB
EX DB.HL
LD A t l
E015
P
37
•LDADB
equ $seis
CC4B
CD
21
D0
97
CALL IPRBOP
CCBA
BB
157
B018
P
30
ILDDeA
BQU IE018
CC51
D1
98
POP DB
CCBB
3B
ei
158
E02A
P
39
IDIVHD
BQU $Ee2A
CC52
Cl
99
POP BC
CCBD
32
65
Ee
159
LD (ISBDR),A
0006
P
40
• DIR2
EQU $0006
CC53
3A
8C
Ee
iee
LD A 9 (9STOP)
ccce
3B
02
16 e
LD A,2
DO0C
P
41
IDBVI
EQU 拿 Doec
CC56
BT
101
OR A
CCC2
92
80
Di
161
LO (#OD) t A
D012
P
42
IDLDIR
BQU ID012
CC57
20
OP
102
JR NZ.RBTVR
CCC5
3B
03
162
LD A 9 3
0015
P
43
fSAVED
BQU $D015
CC59
68
103
LD L V D
CCC7
32
81
Dl
163
LD («OP) 9 A
0021
P
44
#PREOP
EQU $De21
CC5A
3A
84
Dl
104
LD A«(#YBH)
CCCA
CD
24
DO
164
CALL IOPBNS
D024
P
45
IOPBNS
EQU 拿 D02«
CC5D
47
105
LD B V A
CCCD
165
RBTVW
D02A
P
46
fDIRSB
EQU $D02A
CC5E
7D
106
LD A,L
CCCD
3A
8C
BO
166
LD A,(#STOP)
D108
P
47
#FMAC
SFTJIS9
BQU SDie8
CC5P
90
107
SUB B
CCDO
B7
167
OR A
2F81
P
48
EQU 92F81
ccee
6F
108
LD L f A
CCD1
3E
FF
168
LD A,$FP
JR HZ.BRRRETW
2PB6
P
49
JISVRM 嫌
BQU S2FB6
CC61
26
ee
109
LD H,0
CCD 3
20
OB
169
3099
P
50
SPTCHM
EQU $3099
CC63
19
110
ADD HL,DE
CCD5
21
00
ee
170
LO HL 0 6
CCOO
51
CC64
EB
111
EX DB 9 HL
CCD8
22
1A
CC
171
LD (FPOT2),HL
ccee
52
;
CC65
CD
24
D0
112
CALL 雜 OPENS
CCDB
22
5F
CF
172
LD (INBP2) 9 HL
LD A,2
CCOO
C3
1C
CC
S3
FOPEN
JP OPBN1
USR
CC68
113
RETVR
CCDB
3E
02
173
CC03
C3
F7
CC
54
FBOFJ
JP EOF?
USR
CC68
3A
8C
bo
114
LD A,<#STOP)
CCE0
174
ERRRETW
CC06
C3
2B
CD
55
FGETC
JP CETC
USR
USR
CC6D
B7
115
OR A
CCEO
HD
5B
62 CF
175
LD DE 9 (USRVK)
CC09
C3
B1
CD
56
FPUTC
JP PUTC
CC6C
3E
FF
116
LD A,$PF
JR NZ.BRRRETR
CCE4
12
176
LD (DE) t A
CC0C
C3
32
CE
57
FCLOSE
JP CLOSE
USR
CC6B
20
15
117
CCE5
C9
177
RET
CC0F
C3
99
CB
58
FRBADS
JP READS
USR
CC70
AF
U8
XOR A
CCE6
178
CC12
C3
FE
CB
59
FWRITS
JP WRITS
USR
CC71
32
61
CP
119
LD (I0FG1) # A
CCE6
179
•
CC15
C3
IB
CF
60
FREAD
JP RBAD
USR
CC74
32
6S
CF
120
LD (PEOF),A
CCE6
180
SMACDN
128 Oh! X 1991.2.
►受験生は各自の黄任において解凍……。そうはいっても記事を読んだら解凍せずにはい
られない。今年の冬は長くなるかもしれません。 川野啓祐( 18 >千葉県
CCE6
C5
181
PUSH BC
CDBB
ED
4B
B3 EC
321
LD BC t (4BSIZ)
CCE7
3A
8B
B0
182
LD A,<#DN)
CDC2
09
322
ADO HL.BC
CCBA
4F
183
LD C,A
CDC3
ED
4B
5F CF
323
LD BC.(INBP2)
CCEB
06
00
184
LD B v 0
CDC7
09
324
ADD HL.BC
CCED
21
CO
EC
185
LD HL.&NAC4
CDC8
IA
325
LD A,(DH)
CCF0
09
186
ADD HL.BC
CDC9
EB
326
EX DE.HL
CCPi
7E
187
LD A»(HL)
CDCA
CD
18
EO
327
CALL fLDDEA
CCF2
32
9?
EO
188
LD (IMAC) 9 A
CDCD
2A
IA
CC
328
LD IIL, (FPOT2)
CCF5
Cl
189
POP BC
COD ❶
23
329
INC HL
CCF6
C9
190
RET
CDD1
22
iA
CC
330
LD (FPOT2),HL
CCF7
191
CDD4
2A
5F
CP
331
LD IIL, (INBP2)
CCF7
192
CDD7
23
332
INC HL
CCF7
193
FEOF()
CDD8
22
5F
CF
033
LD (INBP2),HL
CCF7
194
(FILNO)
CDDB
AK
334
XOR A
CCF7
195
CDDC
32
9B
EO
335
LD (IKDR) t A
CCF7
196 EOF?
CDOF
ED
5B
E3 EC
336
LD DE,(&DSIZ)
CCF7
F5
197
PUSH AF
CDH3
i\l
337
OR A
CCF8
C5
198
PUSH BC
C0E4
EO
52
338
SBC HL.DE
CCF9
D5
199
PUSH DE
CDE6
CC
FO
CD
339
CALL Z.PUTDBIO
CCFA
E5
200
PUSH IIL
CDE9
340 r
»UTRKT
CCFB
D5
20t
PUSH DE
CDE9
DD
El
341
POP IX
CCFC
11
64
CF
202
LD DE,EOFWK
CDEB
El
342
POP HL
CCFF
CD
06
CC
203
CALL FGKTC
COEC
Di
343
POP DE
CD02
2A
18
CC
204
LD HL,(PPOTl)
CDED
Cl
344
POP BC
CD05
2B
205
DEC HL
CDEB
FI
345
POP AF
CD06
22
18
CC
206
LD (FPOTl),HL
CDHF
C9
346
RET
CD09
2A
5D
CF
267
LD HL,(INBPl)
CDFO
347
CD0C
23
208
INC HL
CDFO
348 :
CD0D
22
5D
CP
299
LD (INBPl).HL
CDFO
349 PUTDEIO
CD19
Dl
2ie
POP DB
CDFO
2A
5F
CF
350
LD HL,(INQP2)
CD11
入 P
211
XOR A
CDF3
22
9D
H0
351
LD (IHSBT),HL
CD12
12
212
LD (DE),A
CDF6
3E
ei
352
LD A V 1
CD13
32
65
CF
213
LD (FEOF),A
CDP8
32
8B
Dl
353
LD (IDDRV+U.A
CD16
3A
64
CF
214
LD A t (EOFWK)
CDPB
3B
07
354
LD A # 7
CD19
47
215
LD B t A
CDPD
32
8C
Dl
355
LD («DDRV^2) t A
CD1A
3A
B7
EC
216
LD A •( 龜 BOP>
CE0Q
3E
02
356
LD A,2
CDiD
B8
217
CP B
CE02
32
9C
E0
•357
LD (IIOPG) f A
CD1B
20
06
218
JR HZ,EOFRBT
CE0S
CD
0P
CE
358
CALL PUTDE2
CD20
3B
FF
219
LD A,-l
CB08
21
00
00
359
LD HL v e
CD22
12
220
LD (DB},A
CE0B
22
5F
CP
360
LD (INBP2) V HL
CD23
32
65
CP
221
LD (FBOF),A
CE0B
C9
361
RBT
CD26
222 EOFRBT
CE0P
362
CD26
B1
223
POP HL
CBOP
363 ;
CD27
Dl
224
POP DE.
CE0F
364 PUTDE2
CD28
Cl
225
POP BC
ceep
3B
CD
365
LD A,«CD
CD29
FI
226
POP AF
CE11
21
29
CE
366
LD HL,PATCHPUT
CD2A
C9
227
RET
CB14
32
7A
DB
367
LD ($DB7A),A
CD2B
228
CB17
22
7B
DB
368
LD ($DB7B),Ht
CD2B
229
CE1A
CD
ec
DO
369
CALL 参 DEVI
CD2B
230
FCETC ClBYTE FROM FILE]
CE1D
3E
2A
370
LD A,$2A
CD2B
231
(FILNO)
CB1F
21
A4
B0
371
LD HL • 黎 £0A4
CD2B
232
CE22
32
7A
DB
372
LD ($DB7A),A
CD2B
233 GETC
CE25
22
7B
DB
373
LD ($DB7B),HL
CD2B
F5
234
PUSH AF
CE28
C9
374
RET
CD2C
C5
235
PUSH BC
CE29
375
CD2D
D5
236
PUSH DB
CE29
376 r
>ATCHPUT
CD2E
E5
237
PUSH HL
CE29
2A
DF
EC
377
LD HL,(ISBUFF)
CD2F
DD
E5
238
PUSH IX
CE2C
ED
5B
E3 EC
378
LD DE,(&QSIZ)
CD31
3A
65
CF
239
LD A,(FEOF)
CE30
19
379
ADD HL r DE
CD34
B7
240
OR A
CE31
C9
380
RET
CD35
20
3K
241
JR HZ.EXCREAD
CE32
381
CD37
ED
53
62 CF
242
LD (USRWK),DE
CE32
382
CD3B
2A
5D
CF
243
LD HL,(INBPl)
CE32
383
FCLOSE
CD3E
7C
244
LD A,H
CE32
384
(FILNO)
CD3F
B5
245
OR L
CE32
385
CD40
CC
7C
CD
246
CALL Z,CETDEIO
CE32
386 CLOSE
CD4 3
3A
8C
BO
247
LD A,(ISTOP)
CB32
F5
387
PUSH AF
CD46
B7
248
OR A
CE33
C5
388
PUSH BC
CD4 7
20
25
249
JR NZ.CBTRET
CE34
D5
389
PUSH DE
CD49
2A
18
CC
250
LD HL f (FPOT1)
CE35
E5
390
PUSH HL
CD4C
ED
$B
E3 EC
251
LD DE,(&BSIZ)
CE36
DD
E5
391
PUSH IX
CD50
CD
2A
EO
252
CALL IDIVHD
CE38
IA
392
LD A,(DH)
CDS3
ED
5B
DF EC
253
LD DE,(ISBUFF)
CE39
FE
02
393
CP 2
0057
19
254
ADD HL.DE
CE3B
20
39
394
JK NZ f CLOSERET
CD58
CO
12
EO
255
CALL ILDAHL
CE3D
11
64
CF
395
LD DB,EOFWK
CD5D
ED
5B
62 CF
256
LD DB,(USRWK)
CE40
3A
E8
KC
396
LD A,(&EOF3)
CD5F
12
257
LD (OB),A
CE4 3
U
397
LD <DE),A
CD60
258
CE44
06
01
398
LD i\ t \
CD60
2A
18
CC
259
LD HL,(PPOTll
CK46
CD
09
CC
399
CALL FPUTC
CD63
23
260
INC IIL
CE49
CO
7D
CK
400
CALL CLKBF
CD64
22
18
CC
261
LD (FPOTi) # HL
CE4C
3E
01
401
LD A 9 1
C067
2A
5D
CF
262
LD IIL, (INBPl)
CE4E
32
9B
E0
402
LD <»EDR),A
CD6A
2B
263
DEC HL
CK51
CD
F0
CD
403
CALL PUTDEIO
CD6D
22
5D
CF
264
LD (INUPt) V HL
CE54
2A
IA
CC
404
LD HL,(FPOT2)
CD6E
265 GKTRHT
CB57
22
86
Dl
405
LD (»FSZL),HL
CU6E
DD
Kt
266
POP IX
CE5A
21
00
ee
406
LD HL f 0
CD70
El
267
POP HL
CE5D
22
88
Dl
407
LD (#FS2L^2),HL
CD7i
Di
268
POP DR
CE6e
3A
ea
Dl
408
LD A,(IPMAC)
CD72
Cl
269
1>01» BC
CB63
B6
01
409
AND 1
C073
FI
270
POP AK
CB65
3B
04
410
LD A f 4
0074
C9
271
KKT
CE67
20
02
411
JR N2 .HACZOKU
CD75
272
CE69
3B
20
412
LD A f $20
CD75
273
CB6B
413 HACZOKU
0075
274 EXCRKAD
CE6B
32
82
De
414
LD (#20KU^2),A
0075
3E
09
275
LI) A,9
CE6E
3B
02
415
LD A v 2
CD77
32
8C
EO
276
LD ( ISTOP),A
CE70
32
80
Dl
416
LD (tOD) # A
CD7A
18
F2
277
JR GETRET
CE73
CD
15
D0
417
CALL .SAVED
CD7C
278
CE76
418 CLOSBRET
CD7C
279
CB76
DD
B1
419
POP IX
CD7C
280 QETDBIO
CE78
B1
420
POP HL
CD7C
3A
66
CP
281
LD A,(EOR)
CB79
Dl
421
POP DB
CD7F
B7
282
OR A
CE7A Cl
422
POP BC
CD80
28
06
283
JR Z V GBT3K1
CB7B
FI
423
POP AF
CD82
3B
09
284
LD A,9
CE7C
C9
424
RBT
CD84
32
8C
BO
285
LD (ISTOP),A
CE7D
425
CD87
C9
28$
RET
CE7D
426
CD88
287 GBTSK1
CK7D
427 CLRBF
CD88
3E
«7
288
し D A,7
CE7D
2A
DF
EC
428
LD HL,(ISBUFF)
CD8A
32
8B
Dl
289
LD UDDRV+U t A
CE80
ED
5B
E3 BC
429
LD DB,(4BSIZ)
C08D
3B
01
290
LD A,1
CE84
19
430
ADD HL»DE
CD8F
32
8C
Dl
291
LD (#DORV^2),A
CE85
ED
5B
5F CP
431
LD DB,(INBP2)
C092
3A
6i
CF
292
LD A t (IOFGl)
CB89
19
432
ADD HL 9 DB
CD95
32
9C
Be
293
LD (#ZOFG),A
CE8A
EB
433
EX DE V HL
CD98
CD
OC
DO
294
CALL IDBVI
CE8B
434 CLRBF し P
CD9B
3A
9C
E0
295
LD’At(ilOFO)
CB8B
AF
435
XOR A
CD9B
B7
296
OR A
CB8C
CD
18
Ee
436
CALL fLDDEA
CD9P
20
06
297
JR NZ.GBTDESK
CE8P
13
437
INC DH
CDA1
3B
FF
298
LD A,-l
CE90
2A
E3
BC
438
LD HL t (&BS1Z)
CDA3
32
66
CF
299
LD (EOR),A
CB93
B7
439
OR A
CDA6
AF
300
XOR A
CE94
ED
52
44e
SBC HL V DE
CDA7
301 CBTDBSK
CE96
20
P3
441
JR NZ.CLRBFLP
CDA7
32
61
CP
302
LD (IOFOl),A
CB98
C9
442
RET
CDAA
2A
9D
E0
303
LD HL, UHSBT)
CE99
443
CDAD
22
5D
CP
394
LD (INBPl).HL
CE99
444
CDBO
C9
305
RBT
CE99
445
FHBADS
CDB1
306
CE99
446
(FILNO)
CDB1
307
CE99
447
CDB1
308
; FPUTC ClBYTE TO PILE]
CE99
448 RBADS
CDB1
309
; (DATA)
CB99
F5
449
PUSH AF
CDBl
310
CE9A
C5
450
PUSH BC
CDB1
3111
PUTC
CE9B
D5
451
PUSH DB
CDBl
F5
312
PUSH AP
CE9C
E5
452
PUSH HL
CDB2
C5
313
PUSH BC
CE9D
DD
E5
453
PUSH IX
CDB3
D5
314
PUSH DB
CE9F
D5
454
PUSH DE
CDB4
B5
315
PUSH HL
CEA0
06
FF
455
LD B.25S
CDB5
DD
E5
316
PUSH IX
CEA2
21
00
EE
456
LD HL.P256
CDB7
78
317
LD A»B
CEA5
457 READSLP
CDE8
B7
318
OR A
CBA5
LI
64
CF
458
LD DE,EOFWK
C0B9
28
2B
319
JR Z.PUTRET
CEA8
3B
01
459
I.D A, l
CDBB
2A
DP
EC
329
LD HL,(ISBUFF)
CEAA
12
460
LD (D6) t A
CEAB CD 06 CC
CEAE 1A
CBAF 4F
CEBO 3A B7 EC
CEB3 B9
CEB4 20 10
CEB6 2A 18 CC
CEB9 2B
CHBA 22 18 CC
CEBD 2A 50 CF
CKCO 23
CEC122 5D CF
CEC418 2D
CEC6
CEC6 79
CEC7 FE OD
CEC9 20 IE
CECB 11 64 CF
CECE 3E 01
CEDO12
CEDI CD 06 CC
CED41A
CED5 FE OA
CED7 281A
CBD9 2A 18 CC
CBDC 2B
CEDD 2218 CC
CEBO 2A 5D CF
C6E3 23
CEE4 22 5D CF
CBB718 OA
CBB9
CBE9 3A 8C E0
CEEC B7
CEBD 20 04
CBBF 71
CBF0 23
CBF110 B2
CEF3
CEF3 78
CEF4 2F
CEF5 D1
CEF612
CEF7 DD El
CEF9 El
CEFA D1
CEFB Cl
CEFC FI
CEFD C9
CEFE
CEFE
CEFE
CEFE
CEFE
CEFE
CEFE F5
CEFF C5
CF0O D5
CFOi E5
CF02 DD E5
CF04 78
CF05 B7
CF06 28 OC
CF08
CF08 CD 09 CC
CF0B 3A 8C EO
CFOB B7
CFOF 20 03
CPU 13
CF1210 F4
CF14
CF14 DD El
CF16 El
CF17 D1
CF18 Cl
CF19 FI
CP1A C9
CF1B
CPIB
CPIB
CPIB
CF1B
CF1B
CF1B F5
CF1C C5
CF1D D5
CF1E B5
CF1F DD E5
CF21 D5
CF22 IA
CF23 47
CF24 2i ee EE
CF27
CF271164 CF
CF2A 3E ei
CF2C 12
CF2D CD 06 CC
CF30 U
CF314F
CF32 3A E7 EC
CF35 B9
CF36 2010
CF38 2A 18 CC
CF3B 2B
CK3C 2218 CC
CF3F 2A 5D CF
CF42 23
CF43 22 5D CF
CF4618 OA
CF48
CF48 3A 8C E0
CF4B B7
CF4C 20 C4
CF4E 71
CF4F 23
CF50 10 D5
CF52
CF52 Dl
CF53 iA
CF54 90
CF5512
CF56 DD El
CF58 El
CF59 Dl
CF5A Cl
CF5B FI
CF5C C9
CF5D
CF50
CF5D
CF5D
CF5D 00 00
CF5F 00 00
CF61 00
CF62 00 00
CP64 00
CF65 00
CF66 00
CF67
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
CALL FCETC
LD A 9 (DB)
LD C,A
LD A,UEOF>
CP C
JR NZ.READSSK
DRC IIL
LD (FPOTI),MI¬
LD HL,(INBPl)
INC HL
LD ( INDPl ) f IIL
JH READSHET
READSSK
LD A*C
CP SOD
JR NZ V READSSK2
LD DR.EOFWK
LD A,1
LD (DE),A
CALL FGETC
LD A,(DE)
CP $0A
JR Z.READSRET
LD HL f (FP0T1)
DEC HL
LD (FPOTl),HL
LD HL»(INBPl)
INC HL
LD (INBPl 丨 ,HL
JR READSRET
RBADSSK2
LD A •(参 STOP>
OR A
JR NZ.HBADSRBT
LD (HL),C
INC HL
DJNZ READSLP
READSRBT
LD A,B
CPL
POP DE
LD (DE) t A
POP IX
POP HL
POP DE
POP BC
POP AF
RET
;FWRITS
;(DATA)
WRITS
PUSH AF
PUSH BC
PUSH DE
PUSH HL
PUSH IX
LD A t B
OR A
JR Z.WRITSRET
WRITSLP
CALL FPUTC
LD A,(#STOP)
OR A
JR NZ,WRIT3RET
INC DE
DJNZ VBITSLP
WRITSRBT
POP IX
POP HL
POP DB
POP BC
POP AF
RET
;FRKAD
;(LENGTH)
READ
PUSH AF
PUSH BC
PUSH DB
PUSH HL
PUSH IX
PUSH DE
LD A,(DE)
LD B f A
LD HL.P256
READLP
LD DE.EOFWK
LD A f 1
LD (DE),A
CALL FGETC
LD A,(DE)
LD C,A
LD A,(&EOP)
CP C
JR NZ.READSK
LD HL, (FPOTU
DEC ML
LD (FP0T1),HL
LD HL f (INDPi)
INC HL
LD (INBPl)iHL
JR RBADRBT
RCADSK
LD A,(ISTOP)
OR A
JR N7.,READRET
1*!) (HL) ,C
INC HL
DJM # Z RHADLP
READRET
POP DE
LD A,(DE)
SUB B
LD (DB) t A
POP IX
POP ML
POP DE
POP BC
POP AF
RKT
;WORK DATA
INBPl DW 0
INBP2 DW 0
IOFOl DD e
USRWK DW e
EOFWK DB 0
FEOF DB 0
EOR DB 0
►今月のディスタにはすごいものを入れてくれたものだ。4月号のディスタには何が入つ
てくるかいまから楽しみだ。3月18日までディスク5枚を用意しとくぜ。 INTEGRAL.XI 129
古川照道 (17) 栃木県
, , ■ . .丨 I ■
川扣•叫_••.叫 p •..胃 …"_州,_ r_ii!j||i' l 'H||p.MMi,||||,,..H,,||| r »M||||||i^»^^^
… 山‘.山 n ⑴ IIIII •… 1 iiiiimi.h Iin.m 1 , 1111 h, 11111 urn,,.lu.-.irmin 1,111 h"i 111111 tii,. 11111111 u.. ; 111111 ih„ui iuii.m,. m >...tin..., . " 山 "",. . n.
''1 11111 1' 1 , 'll| 卜 : 1 "” "II,"'•"liln " ,| 11 ) ,|1"'':;|1! """111111 ",">IUH ""… ,iriH " ,ド .、, il 1 "l|| 1 !i''" , i||| 1 |I い " 1 i|||/ ぃ 1 "ip ド ".,|1"""1, nIII
...パ
'I,. ‘ | ハ .| 1 : '
•.“4 :!、‘•• “L ‘ I !” •.パ I ’ .,い‘.,.. ;* Il ! h .. . . ,.‘..•ベバ ..,ベ,..
■
以 II 如 «!lillli...iillllllI“.Kmill.••••< 14111 ...tiililliu "., Iliith.,, 11111111 ^iliili.Miillillu.rfiltlM<M.rtl(llli,..Htl)llH^iililtU.»iiil^ii. ( iillllli.uai ; iIll(. M .illlH “..iHilli.,.. 111111 ii...ii).lllh...illillli•..•nI
,▲▲▲▲▲▲ ▲▲▲▲▲▲▲▲ ! ii . ;
マシン語カクテ/レ in Z 80 ’s Bar
第 18 回——乱数は世界を救うか
シナリオ:西川善司
イラスト:山田純二
今月はひさびさに西川善司君がメインとなるフシン語カクテル。ち
やんと話が進行するのかどろかちよつと心配ですが,大丈夫でしよ
ろか。まあ,ネタは乱数生成法といろことですから,とりあえすで
だらめに進めればいい?
季節外れの台風の日。
丨カラン,コローン(ドアべルの音)
……ゴーゴー(外の風の音)
……バタン(ドアの閉まる音)
西川善司(以下善):おや,みなさんこん
な台風の日にお揃いでどうしたんです?
源光(以下光):とかなんとかいって自分
だってやってきたくせに。
マスター (以下 M ) :やあ,善さん, いらっ
ゃい。今日は一体どうしたんですか。先月
は1回も来なかったのに。
善:ぎくんちょ。
山田純二(以下純):で,今日は……わか
った。ゼンジソフトでまたくだらないもの
を 作っていて 行き詰まったんでしょう?
善:はふ,ちょっとため息。いえね,いま
ちょっとしたゲームを 作って いるんですが
ね。乱数の作り方がわかんないんですよ。
長老(以下老):まったくお前というやつ
は,そんな基本も知らんでどうする!
純:「ランスウ」というと,あのアリスソ
フトの代表作?
光:それは 「ランス」 でしょ (しっかり 知
ってるやつ)。
善:あ,皆さんもやったんですかあ。あれっ
て結構面白いんですよね。私はシイルちや
んの フアン なんですよ。 へへ。
ようこ(以下 Yo ) :こらこら,そこ。変な
話題で盛り上がらないように。
ヵミの味噌汁?
M :乱数って要するにでたらめな数の並び
でしょ。作るのがそんなに難しいとは思え
ませんけどね。
老:一般にいう「乱数」というのは,実は
130 Oh! X 1991.2.
「疑似乱数」のことなんじゃよ。完璧な乱
数というものはまさに「神のみぞ知る J と
いったところじゃ。
善:「髪の味噌汁」?うえ 一っまず そ。
Yo :あんたは黙ってなさい。
老: ま,コンピュータで作られる乱数の多
くは「算術乱数」と呼ばれるものだ。つま
り,ある「計算」によって求められた答え
が「乱数」というわけじやのう。
純:それでは,乱数に規則性や周期が現れ
てしまうのでは?
老:確かにな。じゃから,その「規則性」
や「周期」がなるベく目立たない「疑似乱
数」を作ろうと世界中がいまも研究をしと
る。
光:私が聞いた話では円周率 「 7TJ や自然
対数の底 re 」 などの無理数の各桁に出現
する〇〜9の数字はほとんど同様の確率で,
しかもでたらめの順番に出現していると聞
いたことがありますね。
M: へえ 一。 それは確かに先ほどの「神の
みぞ知る」乱数に近そうですね。
善:「紙の味噌汁」? 味噌汁はやっぱり豆
腐とネギがいちばんだね。
Yo : 善ちゃん,あなたここになにしに来
たか覚えてる?
老 :( 無視して)それは,興味深い話題じ
ゃがそれをもとにして乱数を作るにはちと
いまの計算機には重荷じゃろう。メモリや
計算速度の点でな……。
純:「でたらめ」な数の並びがほしいんな
らなにかの 「ノイズ」 を ソースに したら ど
うでしよう力、。
M :あ,確かに0「ノイズ(雑音)」レベル
を数値に変換したら乱数になりそうですね。
善:「ホワイトノイズ」なんかは均等な周
波数スペクトルを持ってるんだからフィル
夕やなんかで乱数の上限や下限を設定でき
るし,いいじやないすかあ。
老: 確かに 「ツエ ナダイオード (Zener d
iode )」 などのノイズを ソースに 乱数を作
ることはある。しかし,そういった乱数は
「再現性」がないのはわかるじやろう。
光:あ,なるほど。
Yo : 「再現性」?
光:いい かい, ようこちやん。ある数式実
験で引数に乱数を使う場合を考える。そこ
で,ある乱数系列で実験結果が得られたと
して,もう一度この実験を行うとき,「ノ
イズ」のような再現性のまったくない乱数
では同じ結果はまず得られないのさ。ま,
そうした点がこういう「ノイズ」型乱数の
欠点だね。
善:どうでもいいけどさあ。早ぐ具体的な
乱数の発生法を教えてよ。はふはふ。ため
息2連発出しちゃうよあたしゃ。
老:誰じゃお前は!
善:魅由と呼んでっ V ◎ 闇の血族
mmm
老:とても簡単で理解しやすいのが「平方
採中法 」 (Middle sequence method ) と
いうやつじゃ〇
M :名前は雛しそうですけど……。
老:図1を見ながら話をしよう力、まず,
2進数 a ビットのある初期値を与える。こ
の値を2乗し,その答えを (2 xa ) 桁の
レジスタに格納する。そして,そのィ直の真
ん中の a ビットを求める乱数とし,以降,
同じことを繰り返していく……というもの
じや0
HL_BUFF:
DATA:
: CASE PARAMETERS ARE STR DATA
••CASE PARAMETERS ARE INT DATA
;ERROR
; 戻り镧
••CASE NO PARAMETERS
;GET PARAMETERS FROM STR DATA
••実 R (に乱败を得る
E02B
B02D
B02F
E031
8031
E032
E035
B036
B037
E039
K039
E03A
B03D
B03B
B03E
B03B
B040
E041
B042
E045
E045
B046
E047
B048
E049
B04B
E04C
E04C
B04D
E04F
B050
E050
E052
CB ID
CB 3C
CB ID
20 F6
C9
37
38
平方採中法 (8 BITS )
ORG 0E000H
CP
JR
CP
RET
LD
JR
INITIALIZE:
LD
OR
RBT
LD
LD
RET
3
Z.INITIALIZE
l z
<HL_BUFF) t HL
GETJUND
A,B
A
Z
A,(DE)
(DATA),A
A,L
HL f (HL BUFF)
(HL),A
HL
(HL),0
AF f AF #
(DATA) f A
;爽ん中の 8 ビツトをと 4
;A=RANDOM NUMBER
コタ x=HL
A f 16
B, H
C, L
HL,0
HL f HL
DB t HL
HL.HL
DE t HL
NC f ML2
HL V BC
DW
DW
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
m = nXL — p
i=((xoShrm) XOR x n - 2 )0R(x n -iShl m)
: ((Xt-n + l shr m)0R(x t - n shl m))X0Rx t -i
X t -p XOR X t -q
乱数発生演算式
0000
0000
E000
E0O0
EOO0 PE 03
E002 28 08
6004 FE 02
E006 CO
EO07 22 50 E0
HOeA 18 08
E0OC
E00C
E0OC 78
BOOD B7
B00E C8
E0OF 1A
E010 32 52 EO
E013 C9
E014
E014
B014 2A 52 EO
E017 5D
E018 54
6019 CD 3B E0
BO 1C
E01C ED 5F
K01E AC
B01F AD
B020 08
E021
B021 CB 3C
E023 CB ID
B025 CB 3C
E027 CB ID
E029 CB 3C
純:なんか単純ですぬ。
善:でも, a がもし0になったら,以降0
の繰り返しになっちやうじやん。
老:確かに。だから,得た乱数をそのまま
次回の初期値とせず, Z 80 の場合ならリフ
レッシュレジスタなんかと XOR などをと
る!:よかろう。もっともそうするとさっき
話した「乱数の再現性」というものがなく
なるがな。
Yo :リフレッシュレジスタって?
光: RAM チップは一定期間ごとにメモリ
を読み出して書き込んでやらないと記憶さ
れた情報が消えてしまうんだ。まさにこの
動作が「リフレッシュ」さ。もっともハー
ドウエア的に行われるものだからューザー
はまったく気にしなくていいんだけどね。
で,リフレッシュレジスタはこのリフレッ
シュ動作に使用するレジスタなんだよ〇ま
あ,時間周期的にでたらめな値が入ってい
ると考えてもいいんじやないかな。
Yo :だったらそのまま乱数として使えそ
うじやない?
光:でも Z 80 のリフレッシュレジスタは7
ビットなんだよ。それにそのまま乱数とし
て用いるにはいまいちバラッキがよくない
んだな。
Yo :ふうん。
老:では,次に「線形合同法 」 (Linear co
ngruential method ) を紹介しようかのう 0
善:…… SIGH 。 これまた難しい名前だな。
老:何を言っとる。これは,そうじや,西
川。おぬしが いつも 愛用して いる 「 Oh !
平方採中法
ってどういう意味?
善:やだね,公約数
が1以外はないって
いう意味だよ。
Yo :ふ一ん?
MZ 乱数ルーチン」もこのタイプのもの
じやぞ〇 (リスト6 )
善:へぇ。
老:それで,この方式も比較的単純な原理
のわりにはそこそこの結果を得られるので
広く用いられている。数式1を見てもらお
うか。初期値 x を a 倍しこれに c を加える。
これだけじや。
Yo :小学生でもわかるわね。
光:ただし,出来のいい乱数をこの式から
作るにはある条件のもとで パラメータ a ,
c を定めなければならない。
善:で,その条件つ 図1平方採中法
て?
光:話を L ビット2
進数の乱数 ( L 2 2
のとき)を求めるこ
とに場合をかぎれば,
1) c と2ムは互い
に素である
2) a は4の倍数に
1を加えたものにす
る
とよい。
Yo :(恥ずかしそう
に)……あの1番め
の条件の「互いに素」
老: L ビット2進数以外の範囲の乱数を求
める話はここでは省略しておこう。数学の
苦手な人もおるようじやしな。
Yo :ふん!
善:いぬのふん,なんちて。ぽっくん。
一 同:しり- つ . 〇
善:(空気を悟ってすかさず…… ) と,と
ころで長老あんまりいやみばっかいってる
と,いい死に方しませんぜ……。
老:わしはお前の墓参りをするまでは死な
んぞ。
M :まあまあまあ。
a bits
i 2乗して
つ -
1 du DII5 p
• 3 hifc 1
^ U : f#- k
ゥ bits —
a Dits
r - 2 blts_ 1
1
数式1 線形合同法
x n+ i = ax n + C
• C と 2* •は互いに素
• a は4の倍数に丨を加えたものにする
数式2 M 系列法
パラメータ p,q ( I < q < p )
n = p/L 割り切れないときは n = n +I
リスト 1
RRSRRR
LDLDLDINCLDBXLDi HLDLDLDLDADDBXADDEXJRADDDBCJRg
DA,F
( B A
— L H K R 丨
hb.dk ahla hlhlh
L R RLLL
: D D D A Doox rrrrr
DLLLC L X X B SRSRS
X X X
V—-<—V
初期値演算
マシン語カクテル in Z80’s Bar 131
M 系歹岐
老:(気を取り直して)3つめは 「 M 系列法」
(Maximum length recurring sequence
method ) というやつじゃ(数式2)。今度
のはちと説明がややこしいぞ。さて,理論
から説明するとすれば原始多項式やガロア
体の話から始めないといけないんじゃが…
…(ようこちゃんのほうをちらっと見て)。
などがよく使われるパラメータじゃ。では
いまから16ビット2進数の乱数を生成する
場合を考えよう。このビット長を L = 16 と
するぞ。さて, ( p , q ) は……。
善:いちばん下の (89,38) でいこうよ。
老:よし。まずパラメータ P をビット長 L
で割る。
M : p/L =89/16
=5. 5625
ですね。
として,初期値の個数を n とする。
( x 0 , X !, , Xn-i であることに注意)
この n を L 倍したものから パラメータ p を
引く。
純:ええと,初期値の数は n 二6だから,
nXL - p =6 xl 6-89
= 7
老:よろしい。で,その答えを ml : しよう。
そして与えた初期値のうちの最後の x„_i
を次の要領で計算しなおす。
善:も,もう難しい話はたくさんだわ。
Yo : 善ちゃん,人の声色で自分の意見を
いわないでね。
老:まあ,誌面のほうの都合もあるからな,
ここでは具体的な話をするにとどめよう。
詳しく知りたい人は「情報理論」の本やコ
ンピュータのアルゴリズム辞典のような本
に出ているはずじやから調べてみるとよか
ろぅ。
M :無馬太話が誌面を食いつぶしているとい
う話が . 。
老: M 系列法は2つのパラメータをまず用
意する。仮に P , Q とするが,この2つの
値は正の数で,
1 < q < P
ならばなんでもよい。ただ,バラつきのよ
い乱数を出すのにいくつか経験的に知られ
ている p , q の組み合わせがあるのだが,
誰か知っておるかな?
一同:し一ん。
老: ( p , q ) = (521, 32)
( p , q ) = (250,103)
( p , q ) = (89’38)
リスト S 線形合同法
老:•この計算の答えの数だけ初期値を与え
る。
純:答えの数だけっていったって5.5625と,
割り切れてないですけど。
老:そのときは「繰り上げ」をするのじゃ。
この場合では 5. 5625-> 6とする。割り切れ
た場合はそのままでよいのじゃぞ。
Yo : では,この場合は6つ初期値を用意
するっていうわけね。
M :で,この初期値はどうやって決めるん
です?
老:適当でいいんじゃ。ただし,全部0と
かはだめじやぞ。
善:何ビットの値を用意すればいいの?
老:おお,忘れるとこじやった。求めよう
としている乱数のビット数と同じビット数
の数じゃ。いまの場合だと L =16でやって
おるから16ビットじやな。
善:て,いうことは0〜2 16 —1 ( 0〜6553
5) の範囲の数を6つ用意してこれを初期
値にする,と。
老:そうじゃ。初期値を,
x 0 , Xi, . , x 5
x n _! = (( x 0 shr m)XOR x „_ 2 ) O
R ( x n _i shl m )
いまの場合ではどうなるかな,西川君。
善:はふ 。 n = 6 ,m = 7 でしよ,だから,
x 5 = (( x 0 shr 7 )XOR x 4 ) OR ( x 5
shl 7)
だね。
Yo :ええと。 「 XOR 」 や 「 OR 」 はわかる
けど 「 shr 」「 shl 」 ってなあに?
純:それはね,ビットシフトさ。 「 shr 」 は
右シフト, 「 shl 」 は左シフトを意味する。
上の 「Xo shr 7」は 「 x Q 」 (のビットパ
ターンを)を右へ「7」ビットシフトする
つてこと。
M :ああ, 「 C 言語」の「くく」や「>>」
と同じですね。
善:あのう。 m = 〇になっちゃったときは
どうするんです?
初期値の数 n を求めるときの,
n = p/L
の計算で n が割り切れちゃう場合は,
m = nXL—p
は0になつちゃいますよ。
0000 1; 練形合间法 (8 BITS ) E 028 30
0000
2
;
B028
22
4C
HO
31
LD
(LAST」
細} ,HL
E000
3
ORG
0E00OH
E02B
32
E0O0
4
E02B
EB
33
EX
DB,HL
;DE=RANDOM NUMBER
E 剛
FE
03
5
CP
3
••CASE PARAMETERS ARE
STR
DATA
E02C
2A
46
E0
34
LD
HL,(HL
•BUFF)
E002
28
08
6
JR
Z,INITIALIZE
B02P
73
35
LD
(HL),E
E004
FE
02
7
CP
n 2 z
;CASE PARAMETERS ARE
INT
DATA
£030
23
36
INC
HL
E006
C0
8
BET
;ERROR
G031
36
00
37
LD
(HL) r 0
;"0" を" D" にかえれば
E007
22
46
B0
9
LD
JR
(HL BUFF),HL
;K り «
E033
C9
38
RET
; 16BITS^R が得られる
E00A
18
0D
10
GKTJUND
E034
39
KO0C
11
6034
40
KAKE: ; HL 拿 DE
3 タエ:: HL
B00C
12
INITIALIZE:
E034
3H
10
41
LD
A, 16
B, H
C, L
E00C
78
13
LD
OR
A»B
B036
44
42
LD
H00D
B7
14
A
E037
4D
43
LD
EO0E
C8
15
RET
Z
••CASE NO PARAMETERS
B038
21
00
00
44
LD
HL,0
E00F
1A
16
LD
LD
A,(DE)
;GET PARAMETERS FROM
STR
DATA
B03B
45
HL1:
B010
32
48
B0
17
(PARAM A),A
B03B
29
46
ADD
HL,HL
E013
13
18
INC
DE
B03C
£B
47
EX
DB f HL
E014
1A
19
LD
LD
A,(DB)
B03D
29
48
ADD
HL f HL
E015
32
4A
B0
20
(PARAH^C),A
E03E
BB
49
EX
JR
DB f HL
E018
C9
21
RET
B03F
30
01
50
NC.ML2
E019
22
B041
09
51
ADD
HL.BC
E019
23
GET RAND:
; 実限にを得る
B042
52
ML2:
E019
2A
48
B0
24
LD
HL,(PARAM A)
B042
3D
53
DEC
A
E01C
ED
5B
4C
25
LD
DE,(LAST^RND)
E043
20
F6
54
JR
NZ.ML1
K01F
B0
B045
C9
55
RET
£020
CD
34
E0
26
CALL
KAKE
: HL=atXn-l
E046
56
&023
27
E046
ec
00
57
HL BUFF:
DW
0
H023
ED
5B
4A
28
LD
DE,(PABAH^C)
H048
00
00
58
PARAM A:
DW
0
B026
E0
E04A
00
00
59
PARAM C:
DW
0
E027
19
29
ADD
HL r DE
;HLsa*Xn~l+c
B04C
21
85
60
LAST RND:
DW
8521H
:初期値(適当でいい)
132 Oh!X 1991.2.
老:実はそのときは,
x„_i = ((x 0 shr m)XOR x w _ 2 )OR
(x„_i shl m)
の計算はしなくていいのじゃ。と,いうの
は,この計算は乱数周期を最大周期2 p —
にするために,与えた初期値の足りないビ
ツト数を補足するための計算なんじゃ,と
いってもわけがわからんじゃろう力 ? 。
善:あんたみたいな大学教授をどっかの大
学で見たことがあるよ。
Yo :あ,いるいる! 自分が頭のいいこ
とを生徒に知らしめるがためにわけわかん
ないこというやつ。
M :……(ようこちゃんて結構口が悪い)。
老:いずれ,おぬしらにもわかる日がくる
じゃろう。
純:(小声で)と,いやみにだめおしをす
る長老……。
老:なにかいったかな,純二君? ふん。
まあ,いいわい。次に最初に与えた初期値
をもとにさらに Xn - Xpy の初期値を次の
要領で計算する。
x t = (u^-n+i shr m)OR (x^_„ shl
m))XOR x<_i (n^t^p —1)
善:いまやっている例の場合だと,
x«=((x^ 5 shr 7)OR(Xi_ 6 shl 7))
XOR Xf_i
ですね。で,この漸化式で初期値を X 6 〜
X 89 まで求めればいいわけね0
M : すると,ずいぶん多くの初期値を必要
とするんですね。じゃあ,先ほどのパラメー
夕 p , q の組み合わせで(521, 32) というのが
ありましたけれど,あの場合だと初期値を
x 0 〜 x 521 も用意しなくてはならないんで
すか。
老:そのとおり。しかし,その場合だと乱
数周期は2 521 —1,かなり周期の長い乱数
が得られるな。
Yo : いまやってる例でも周期は2 89 -1ね。
これでも充分長い周期よね。
善: さっきと同じく m =0 のときは上の計
算はしなくていいの?
老:いや , m = 〇のときは 「 shl 」 や 「sh
rj を無視した,
x f = (x«_„ + i OR x t - n )XOR x t .i
(n^ t ^ P-1)
を計算すればよい。
純:で,初期値を用意して実際はどうやっ
て乱数を得ればいいんです?
老:次の漸化式
x t = x t - p XOR x t - q ( p ^ t )
を順次計算し,その答えが乱数となる。
m :やっと q という パラメータが 出てきた
わけですね。
純:ええといまやっている例の場合だと
x t = x t s 9 XOR x f _38 (89^ t )
ですね。
善:ほほう。この方式だと初めの計算量は
多いけど,乱数を取り出すときは 「 XOR 」
1回でいいのか。この方法は高速だから,
ゲームなんかにや向いてるな。おや,ちよ
っと待ってくれよ!この例の場合, t が
128以上の場合はどうすんのよ。
X < = Xj28-89 XOR X 128-38
= X 89 XOR X 90
となるけど初期値は 90 までしかないでしよ
うが!
老:はっはっは,愚かな。上の式はあくま
で数学の漸化式で表現したものじや。実際
のプログラムでは t — p,t — q は単なる初期
値の位置を示すポインタじやから,得た
を順次 t — p へ格納するようにして , t —
p , t — q が P を超えるときはそれぞれを初期
値のあるアドレスの先頭に戻してやればな
んら問題はない。
善:……。
老:さて,ほかに乱数を求める方法には「逆
関数法」,「棄却法」,「極座標法」などもあ
る力 ? ,ま,今日はこのへんでやめておくか
な。興味のある人は……。
善:自分で調べよう,力、いい加減なもん
だな。
そして,数時間後
善:できましたよ。リスト1が平方採中法,
リスト2が線形合同法,リスト3と4が M
系列法だよ。長老が説明したアルゴリズム
のとおりプログラムしたから,特にプログ
ラム自体の説明はしないよ.。各リスト,注
釈文と本文をよく照らし合わせてみればわ
かってもらえると思う。
老:どれどれ。なるほど。平方採中法には
リ フレッシュレジスタ を用いておるな。と
いうことはリスト1で得られた乱数には再
現性がないということじや。
善:リスト1と2, 3は8ビット乱数が得ら
れるんだ。リスト2のほうは一部を変更す
ると16ビット乱数を得られるようになるよ。
リスト4はリスト3を16ビットに拡張した
ものだよ。
Yo : あら,じゃあリスト1の平方採中法
の16ビット版はないのね。
善:だってさあ,もしそれをやるとしたら
32ビットの乗算ルーチンを作らないといけ
ないでしょ。そんなことするんならほかの
方法を使ったほうがいいんじゃない?
老:で,どれも, BASIC から使えるよう
なプログラムになっていると見たが?
善:ええ,そのとおり。 BASIC は XI の H
uBASIC か Xlturbo の TurboBASIC のど
ちらかを使う。同じ Z 80 のマシンへの移植
は BASIC の USR 文の仕様さえ合わせれば
かなり楽だと思うよ。
リスト1は,
A $ = USR ( CHR $( n ))
のように n に初期値を入れて コールす ると,
A = USR ( A )
で, A に〇〜255の乱数が入ってくる。こ
のときの変数 A は「整数型」でないとだめ。
リスト2は,
A $= USR ( CHR $( a , c ))
のように線形合同法の パラメータ a と c を
受け渡したあと,
A = USR ( A )
で A に〇〜255の乱数が入ってくる。リス
卜後半に注釈があるけどそこを変更すれば
16ビット,つまり0—65535の乱数が得ら
れるようになるよ。
リスト3は,
A $= USR ( CHR $( p , q ))
で M 系列法の 2 つのパラメータを受け渡し
たあと,
A = USR ( A )
で A に〇〜255の乱数が入ってくる。さっ
マシン語カクテル in Z 80 ’s Bar 133
sirriALizE
BUFF) ,m.
RAND
;ERROR
; m o m
Z,TRASS
A t (DE)
(P) ,A
DH
A,(DE)
(Q) ,A
HL*SH0K1CHI
DE,ESTBN
BC, 40
••CASE NO PARAMETERS
;OET PARAMETERS FROM STR DATA
B,A
;B:P
A
;/2
A
;/4
A
;/8
NC,MRAND0
: VI 0
A
;W 0
(N) ,A
A,A
A, A
;SAVE
A,A
;*8
B
(M) ,A
••SAVE
A, (N)
A
E,A
D t 0
IX,ESTBN
;A=N-:
•1; MS : 列乱 W(KBITS)
3 * OHG OPOOOH
L,(IY+0)
SHL L
E,(IY^1)
SHR E
A,L
(IX-1)
(IX+O),A
IX
IY
0000
0000
K 000
E0OO
H000 FE 03
E002 28 09
EO04 FE 02
E0O6 C0
F.007 22 OD El
K00A C3 B5 E0
H00O
E0OD
E0OD 78
EO0E B7
E0OK 28 09
£011 1A
E012 32 05 El
E01513
E0161A
E017 32 06 El
E01A
E01A 21 0F El
E01D 1135 El
E020 0128 00
E023 BD BO
E025
E025 3A 05 El
B028 4?
E029 CB 3F
E02B CB 3F
S02D CB 3F
E02F 30 01
E0313C
E032
E032 32 04 El
E035 87
E036 87
E037 87
B038 90
B039 32 03 El
B03C
EC3C 3A 04 El
E03F 3D
E040 5F
B04116 00
E043 DD 2135
;HL=Xn-l
;BC=Xn-2
;IF CASE M=0 THBN JUMP TO
: Xn-1 shl m
;X0 shr m
;X0 XOR Xn-2 —> E
;E OR Xn-1-->
; B = 計算回数
; 残こりの初期 M を計譯する
E046
E047
E049
E04C
E04F
E04F
E052
E053
E055
E055
E058
E058
E05B
E05C
B05C
E05F
E05F
E060
E061
B062
E062
B063
G064
E065
B065
E068
E068
E06A
E06D
E06E
E071
E072
E075
E076
E077
E077
E07A
E07D
E080
E083
E084
E085
K088
E08B
E08D
DD 19
DD 6E 00
DD 4E FF
52
53
58
69
LD
LD
LD
OR
JR
CALL
LD
LD
DD 23
FD 2135
47
FD 6E 00
CD F8 E0
FD 5E 01
CD GD E0
7D
B3
DD AE FF
DD 77 00
DD 23
FD 23
79 INIT2^LOOP:
XOR
LD
INC
INC
きもいったけどリスト 4 はリスト 3 を16ビ
ット拡張したもので,同じ使用方法で〇〜
65535の乱数が得られる。
どのルーチンもあらかじめ CLEAR &H
E 000を実行してから LOADM でオブジェ
タトを読み込んでおかないとダメだよ 。 D
EFUSR 二 & HE 000 も実行しておかないと
ダメ。
と,まあ,こんな感じ。 BASIC からで
なくて機械語のプログラムから呼んだりす
るサブルーチンプログラムにするんならも
うちょっと短くなるよね。
老:いやあずいぶんと長いセリフじやった
が,最後に,これらの乱数がどういったバ
ラツキをするか視覚的に見てみようかの。
一同:え,なにそれ〜っ。
乱数検定モドキ
老:乱数の検定にはいろいろあるがいちば
ん簡単でかっ興味深い結果をえられる方法
を紹介しよう。とても簡単じやからようこ
ちゃんも大丈夫じゃよ。
Yo :ふん!
善:うまのふん。
老:2次元座標系の片方の軸に得た乱数 X ハ
もう片方の軸に1回前に得た乱数を
とり点を打っていくんじゃ。西川の作って
くれた乱数ルーチンをこの方法で見てみる
U スト3 M 系列法
とすればこんな感じかな(リスト5)〇
このプログラムの使い方はまず,あらか
じめ見てみたい乱数ルーチンを読み込んで
おくことが前提じや。また,各乱数の発生
法,ビット数を考慮してリスト5を変更し
たら 「 RUNj してみなさい。
Yo : あ,平方採中法や M 系列法はそうで
もないけど,線形合同法は斜めの線が出て
きたわね。
老:これは得た乱数に規則性があるという
証拠じや。リスト2中盤の,
LD ( HL),E
INC HL
LD ( HL ),0
の部分を,
LD A,E
XOR D
LD ( HL),A
INC HL
LD ( HL ),0
とするとかなりマシになるじやろう。
Yo :あ,ほんとね。
善:注釈にもあるけど 「LD ( HL ),0」 の
部分を 「LD ( HL ), D 」 にすると16ビット
乱数が得られるようになるよ。
老:16ビットの場合だと変な小細工をしな
くてもかなりバラツキのよいものになつと
るようじやな。
純:……あ, M 系列法 もパラメータの 選び
方によっては変な「 V 」のような軌跡がで
きてしまいますね。
M :平方採中法は「リフレッシュレジスタ」
を使用している分,結構いいバラツキのよ
うです。
老:この方法で BASIC 内蔵の乱数コマン
ドやリスト6の 「 Oh ! MZ 乱数ルーチン」
なども検定してみるよい。リスト6は線形
合同法なのでリスト2同様斜め模様ができ
てくるはずじや。リスト6は16ビットのも
のになっとるがリスト2同様の変更で8ビ
ットのものにもなるぞ。
Yo :ところで光君は?
善:あ,ここで眠っているよ。
純:どおりで声がしな〈なったわけだ。
光:ぶつぶつぶつ。
M :おや,なんか寝言いってますよ。
光:ようこちゃん……,むにゃ。
Yo : あら,やだ。私の名前だわ(ぽっ)。
光:……メアリー,くみこちゃん,ゆかり
ちゃん,しずかちゃん,さゆりちゃん,ま
りちゃん . 。
純:なんか,かたっぱしから女性の名前を
つぶやいてるぞ。まったく,この男は。
Yo :ん,もう。
善: JESUS ……,なんちゃって。オチが
読まれたかな,へへへへ。バビンチョ。
つづく
ZDRRDD^DD D D D D D D R R R R N D D D D u D D H D D D
ILOJLLILL LLLL ILSSSJI LAAASL L D L L L
J 3444444 A
)) N
0 1 2 B
♦ I T T
Ex X ) I L s
D I I M N IE
»(( ( X L (A
X » » I I H » I
ILC A A z s AE
kNp
R E alax I ( A ( A
H » » I » I X Y » » I ,
s ACE A E L ( II ABABB
134 Oh! X 1991.2.
SHR_E:
SHR_LP:
SHL^L :
SHL LP :
N
DS
DB
DB
Q
XP :
XMAX : DW
HL_BUFF:
SHOKICHI :
DB
143 LD
DE f HL ; DE=RANDOM NUMBER
HL,(HL_BUFF>
AF.AF 1
(HL),A
HL
(HL) # 0
38
0
0
0
DW 0
; 初期 «TABLE 逍当で _ いません (40« くらい>
12,34,5,67,89,10,11,12,131,4
151 , 6,17,18 • 19,20,212,22,3,24
123,45,67,89,101 • 112,13,14 • 15,16
171,81,92,21,222,32,45,99
E,A
A,D
; X0 XOR Xn-2 •
(IX+0),L
(IXfl),H
IX
IX
IY,ESTBN
A,(N)
B,A
A, (P)
B
B, A
L»(IY+0)
H,(IY+1>
SHL HL
E,(IYf2)
D ,( IY+3)
SHR^DE
OR 一 HL 一 DE
-:
E,(IX-2)
XOR_HL_DE
(1X40),L
(IX+1),H
;DE OR Xn-1—> HL
;SAVE Xn-1
; 残こりの初期 M を針 » する
DE.ESTBN
HL,0
(XP),DE
A, (Q
B , A
し , A
H,0
HL.HL
HL,DE
(XQ),HL
A,(P>
L,A
H,0
HL t HL
HL.DE
(XMAX),HL
••各ポインタの計 B
;XP:0
;B=Q
; A=P
;A=P - Q
; HL=A>2
; ポインタ MAX の計 |
; 実 W に乱数を得る
E08F
E091
E091
B094
E097
E09A
B09B
E09E
E09F
E0A2
E0A3
E0A4
E0A6
E0A7
EOAA
EOAA
E0AD
BOAE
E0B0
E0B1
E0B4
£0B5
E0B5
E0B5
E0B8
E0BB
E0BC
E0BC
ECBD
E0DE
E0BE
EOBF
E0BP
EOC0
E0C1
C0C2
B0C5
K0C6
E0C6
B0C7
E0C8
B0CA
E0CB
H0CC
J50CE
E0D1
E0D1
B0D4
E0D4
E0D5
E0D6
E0D8
E0D9
E0DA
E0DC
E0DF
10
E6
90
DJNZ
INIT2_L00P
EODF
ED
53
91
; 各ポインタの針 練 E0E2
E1
11
35
El
92
LD
DE,ESTBN
E0E3
EB
21
00
00
93
LD
HL,0
E0E4
2A
0D
ED
53
07
94
LD
(XP),DE
; XP=0 E0B7
08
El
B0E8
77
3A
06
El
95
LD
A, (Q)
E0E9
23
47
96
LD
B r A
; B=:Q E0EA
36
00
3A
05
K1
97
LD
A,(P)
; A=P BOEC
C9
90
98
SUB
B
; A=P-Q EOED
6F
99
LD
LD
L,A
E0ED
26
00
100
H,0
EOED
3A
03
19
101
ADD
HL,DE
E0F0
B7
22
09
El
102
LD
(XQ),HL
E0F1
C8
103
••ボインタ MAX の計* E0F2
3A
05
El
104
LD
A, (P)
B0F2
CB
3B
6F
105
LD
L,A
E0P4
3D
26
00
106
LD
H,0
E0F5
20
FB
19
107
ADD
HL,DE
E0F7
C9
22
0B
El
108
LD
(XMAX),HL
E0P8
C9
109
RET
K0F8
3A
03
no
B0FB
B7
111
GET RAND :
; 実限に乱数を得る E0FC
C8
2A
07
El
112
LD
HL,(XP)
EOFD
ED
5B
09
113
LD
DE,(XQ)
E0FD
CB
25
El
E0FF
3D
114
E100
20
FB
1A
115
LD
麟 (DE)
•,乱 ft の計算 E102
•,(これだけリ > B103
C9
AE
116
XOR
(HL)
117
E103
00
77
118
LD
(HL),A
;得た乱数を E104
00
119
;初期® TABLE にしまう E106
59
08
120
EX
AF,AF*
E106
26
23
121
INC
HL
D£
E107
00
00
13
122
INC
E109
00
00
ED
4B
0B
123
LD
BC t (XMAX)
E10B
00
00
El
124
E10D
E10F
00
00
7D
125
LD
A,L
E10F
0C
22
B9
126
CP
E1 12
43
59
20
07
127
JR
NZ f SAVE HL
E115
0B
0C
7C
128
LD
A,H
B11B
04
B8
129
CP
E119
97
06
20
03
130
JR
NZ t SAVE HL
E11C
12
13
21
35
El
131
LD
HL,ESTBN
El1F
D4
16
132
SAVE HL :
E122
18
22
07
B1
133
LD
(XP),HL
E123
7B
2D
134
E126
59
65
7B
135
LD
A y E
E129
0D
0E
B9
136
CP
C
E12C
10
20
07
137
JR
NZ.SAVE DE
E12D
AB
51
7A
138
LD
A,D
E130
15
DE
B8
139
CP
B
E133
2D
63
20
03
140
JR
NZ,SAVE DE
E135
11
35
El
141
LD
DE,ESTBN
E135
00
00
M 系列法 IB ビット版
0000
0000
E0O0
EOO0
E000 FE
£002 28
E0O4 FE
E0O6 C0
E007 22
B00A C3
E00D
EO0D
E00D 78
G00E B7
E00F 28
E0111A
£012 32
E01513
E0161A
K017 32
E01A
E01A 21
E01D 11
E020 01
E023 ED
E025
G026 3A
E028 47
H029 CB
B02B CB
E02D CB
E02F CB
E031 D2
E034 3C
E035
E035 32
E038 87
8039 87
E03A 87
E03B 87
E03C 90
E03D 32
EO40
BO40 3A
E043 3D
E044 6F
E045 26
E047 29
E048 BB
E049 DD
Ee4C El
E04D DD
EC4F DD
刪 2 DD
E055 DD
EC58 DD
605B
E05B 3A
E05H B7
E05P 28
E061
E961 CD
H064
E064 ED
E667 El
H068
E068 CD
09
5E El
68 El
BB El
28 00
12 INITIALIZE :
14
15
20
21 TRANS :
LD
LD
*(16BITS)
0E000H
3
Z,INITIALIZE
Z,TRANS
A,(DE)
(P) ,A
DB
A,(DE)
(Q) ,A
HL,SHOKICHI
DB,ESTBN
BC,40
LD
LD
SRL
SRL
SRL
SRL
A, {P)
B, A
35 MRANDO
36
37
5C El
5D El
19
6B 00
66 01
46 FF
4E FE
5C El
4F B1
5G B8
62
63
LD
ADD
ADD
ADD
ADD
SUB
DEC
LD
LD
ADD
LD B,(IX-1)
LD C,(IX-2)
LD A,(M)
OR A
JR Z.INIT2
CALL SHL^HL
LD DB|(ESTBN)
CALL SHR DE
;ERROR
; 展 0 «
;CASE NO PARAMETERS
;GET PARAMETERS FROM STR DATA
/2
/4
/8
/16
j りきれた
I 0 きれなかった
♦16
N*L-P
SAVE M
;H い : Xn-1
; BC=Xn-2
;IF CASE M=0 THEN JUMP TO
; Xn-l shl m
E06B
B06B 7B
E06C A9
B06D 5F
E06E 7A
E06F A8
E070 57
E071
E 071 CD
E074
B074 DD
E077 DD
E07A
E07A DD
B07C DD
B07E FD
E081 El
E082 3A
E085 47
E086 3A
E089 90
E08A 47
G08B
B08B FD
B08E FD
E091 CD
E094 FD
E097 FD
E09A CD
B09D CD
E0AO DD
E0A3 DD
E0A6 CD
E0A9
E0A9 DD
B0AC DD
EOAF DD
E0B1 DD
E0B3 FD
E0B5 FD
E0B710
E0B9
E0B911
E0BC 21
E0BF ED
E0C2 El
E0C3 3A
EOC6 47
E0C7 3A
E0CA 90
E0CB 6F
E0CC 26
E0CE 29
HOCK 19
E0D0 22
B0D3
E0D3 3A
E0D6 6F
E0D7 26
H0D9 29
E0DA 19
E0DB 22
E0DH C9
EODF
E0DF
EODF DD
E0E2 El
75 00
74 01
23
23
21 B8
5D El
5B El
6E 00
66 01
4F El
5E 02
56 03
42 El
3B B1
56 FF
5E FE
34 El
75 00
B8 El
00 00
53 60
5F El
5E El
62 El
5E El
X D X D N D E DRE REHE DRE
E L E L I L R LOR SDJRLOR SDJR
4567890123456789012345678901234567890
4444445555555555666666666677777777778
1111111111111111111111111111111111111
L : L L L L 2
R R L c c Bp L L L L ccc c N B DD DD T
doddod a DD N N D DDDUDODDADDAADDA D D N N N N J D D D DDDUDDDDD DDDDDDE : D
L X L L X L c L L I I L LLLSLOLLCLLCCLLC LL 丨 111 D LLL L し -: s ILA A L L L L A A L R D L
8 8 8
INI
2345678901234567890123456789
» 0123456789
12222222222
マシン語カクテル in Z 80 f s Bar 135
HL BUFF:
OLDRND : DW
STEP : DW
0000
0000
EO00
E0O0
E0OO
EO02
E0O4
H006
E0O7
E00A
E00C
E0OC
E00C
E00D
E0OE
E0OF
£010
E011
E012
E013
E014
K 017
£018
B0I8
E018
£01B
E01C
E01F
O h ! m Z U6BITS)
ORG 0E000H
(その昔マシン体操で出てきたもの)
FE 03
28 08
FE 02
CC
22 3F E0
18 0C
9 LD
10 JR
11
12 INITIALIZE :
17
18
19
LD
LD
INC
LD
24 GET^RAND :
25 LD
Z, INITIALIZE
(HL^BUFF),HL
GET_RAND
A,(DE)
L,A
DE
A,(DE)
H,A
(OLDRND),HL
DE,(OLDRND)
BC,(STEP)
5CASE PARAMETERS ARE STR DATA
;CASE PARAMETERS ARE INT DATA
;ERROR
; 戻り w
••CASE NO PARAMETERS
;GBT PARAMETERS FROM STR DATA
; 実際に乱数を得る
H020
E023
E026
E026
E027
E02A
E02B
E02C
E02D
E02E
E02E
E02E
E031
E033
E033
£034
E036
E038
E03A
H03B
E03B
E03C
E03E
E03F
E03F
E041
E043
CD 2B E0
22 41 E0
21 00 00
3E 10
CB 23
CB 12
30 01
20 F5
C9
00 00
23 El
83 03
168 SAVELIY:
169 LD
170 EX
171 LD
172 LD
173 INC
174 LD
175 RET
176
177 XOR HI し DE:
178 LD
179 XOR
180 LD
181 LD
182 XOR
183 LD
184 RET
185 OR HL DE:
186 LD
187 OR
188 LD
189 LD
190 OR
191 LD
192 RET
MULTI
(OLDRND) # HL
DE.HL
HL,(HL^BUFF)
(HL),E
HL
(HL) f D
HL,0
A,10H
HL,HL
E
D
NC,SKIP
HL,BC
A
NZ,MLOOP
DW 0
0E123H
899
E,(IX+0)
D,(IX+1)
L,(IY+0)
H,(IY+U
XOR_HL』E
(IX+0) f L
(IX+1),H
; 得た乱数を
; 初期 《 TABLB に l
0DDH
A,L
; ポインタ 1 処 a
A,H
NZ,
IX,
SAVE^IX
ESTBN
0FDH
A,L
; ボインタ 2 ft 理
A,H
NZ f SAVELIY
IY f ESTBN
DE,HL
HL,(HL^BUFF)
(HL),E
; DB=RANDOM NUMBER
L,A
A,H
H,A
L,A
A,H
H. A
E0E6 B1
E0B7
E0E7 DD 5E 00
BOEA DD 56 01
EOED FD 6E 00
EOF0 FD 66 01
E0F3
E0F3 CD 34 El
E0F6
E0F6 DP 75 00
E0F9 DD 74 01
B0FC DD 23
E0FE DD 23
B100 FD 23
E102 FD 23
E104 BD 5B 64
E107 B1
E108
El08 DD
E109 7D
B10A BB
E10B 20 09
B10D DD
E10E 7C
E10F BA
B110 20 04
£112 DO 21 B8
BU5 B1
E116
El16 DD 22 60
BU9 El
B11A
EllA FD
E11B 7D
B11C BB
El ID 20 09
E11F FD
卫 m 7C
B121 BA
E122 20 04
B124 FD 21 B8
Em El
H128
E128 FD 22 62
E12B El
B12C EB
E12D 2A 66 El
E130 73
E13123
E132 72
E133 C9
H134
E134
E134 7D
E135 AB
E136 6F
E137 7C
H138 AA
E139 67
E13A C9
B13B
B13B 7D
H13C B3
B13D 6F
E13E 7C
EI3F B2
E140 67
E141 C9
U スト 5
10 DEFINT A-Z:CLS4:INIT:CLEAR &HE000:DEFUSR»&HE000
28 'Example paraneters
30 AS=USR(CHR$(99»
40 , AS=USR(CHRS(49,11))
50 ’A$=USR(CHR$(39,11))
60 , A$=USR(CHR$(29,13))
70 , A$=USR(CHR$(&H12,&HE1))
’ 平方採中法 8BITS
• 練形合同法 8BITS
•M 系列 8BITS
’H 系列 16BITS
•Oh! 峰数 16BITS
80 ’WINDOVK0,0)-(639,199) ,(-32768!,32768! )-(32768!,-32768!)
90 HINDOW(0,0)-(639,199),(0,0)-(255,255)
100 B:IIS_
118 LOOP
120 A=USR(A)
130 PSET(A,B,1):B=A
140 GOTO120
•16BITS 乱数の時
’8BITS 乱数の時
U スト6 オマケのサンプル
乱数検定プログラム
193 SHR DE :
194 LD
195 OR
196 RKT
197 SHR^LP :
198 SRL
199 RR
200 DEC
201 JR
202 RET
203 SHL HL
204 LD
205 OR
206 HKT
207 SHL_LP:
208
209
210
211
212
213
214 M :
215 N :
216 P :
217 Q :
218 XP : D 1
219 XQ: D1
220 XMAX: D'
221 HL^BUFF :
222 SHOKICHI
223
SLA
HL
DS
ぽ澦⑼ mm 2
1718,1920,2122,2324, 12115,1
541,565 ,123,1567,1865,1861
123, 154,189, 10,112 ,5855,12345
122 9 223,520 f 9999 ,229,19,542
321,210,12,11,4 ,888 ,9 876,643
AD X D D N D E D D DLLRD B R H
CL K L LIL R LL A s R J A D J R
E 一
0
3
123456789012345
333333333444444
12345 6789012345 67 8901234567
44444 4444555555 55 5566666666
11111 1111111111 11 1111111111
5C
El
A B 9c
31 F 5
5 4 9
21 F
F 2 5 0 2043 p
D 0 E 0 D 0 0 0 1
0000 4E4C6A912D650D0F 008732 1C086 000000000
0000 0C0E0 40007040 BOD 30021000072 000000000
000000000
000000000
A 7 8 BBD09 A 7 8 B B D o 9 00960000 2285674 FD2F7B0A09A0F0E10BO42
3 B c CC 32 c 3BC CC 32 c 00620000 D050B 0121010700037 0 001400090
2256779 BCBFF 2344689 BCCDEF 024688 BE147AD0369CF258AD0368BE14788BE147ADO
4444444444445555555555555666666667777788888899999 aaaaaabbbbbbbcccccd
eeebbebebeebeehebeebeeeebhehegbbbheeebebebbeeeeebebeeheeeeeeebeeeeee
136 Oh! X 1991.2.
•実数型コンパイラへの想い
S - OS 上のコンパイラの歩みは Fuzzy BASIC
コンパイラから始まりました(その前に magiF
ORTH という変わり種はありましたが)〇 Fuzzy
BASIC で作成したプログラムをマシン語に変換
することが可能となったのです。このあと1988年
1月号では FuzzyBASIC で書かれた FuzzyBASI
C コンパイラさえ登場しています。
S -0 S 上のコンパイラの主流は構造化コンパイ
ラ言語 SLANG に引き継がれました。 C に似た文
法を持つ SLANG はいまではすっかり S - OS 上の
標準コンパイラとしての地位を確立した感があり
ます。寄せられる投稿の多くが SLANG で書かれ
ているということからも,人気の高さがうかがえ
ます。
SLANG は整数型コンパイラです。実数演算パ
ッケージ SOROBAN 用のライブラリが追加され,
実数を扱えるようになったとはいっても,「1.0+
2.0」を計算するのに,まず1と2を浮動小数点
数に変換する I 対数を呼び出し,次に2つの数を足
す関数を呼び出さなければならず,扱って扱えな
くはないというレベルです0実数を直接扱えるコ
ンパイラの登場が望まれるところです。
第10梛
ダイスゲーム K 旧 MET
• ダイスゲーム KISMET
一風変わったゲームが届きました0サイコロを
5つ使ったダイスゲーム KISMET です。出たサ
イコロの目によって役が決まり,役に応じた得点
が入ります。役は全部で15種類で, BASIC セク
シヨン と KISMET セクションの2つに分けられ
ます。 BASIC セクションはサイコロの目を集計
するもので,1の目だけを集計する ACES から6
の目だけを集計する SIXES までの6種類 。 KIS
MET セクションはポーカーの役によく似た役が
9種類用意されています。ゲームはサイコロを15
回振り,できた役の合計得点で争います。
この ゲームの 面白いところは, サイコロを振っ
て出た目を必ずなんらかの役にしなければならな
いこと。そして,同じ役は ゲーム 中二度と使えな
いことです。1 • 2 • 3 • 4 • 5と目が出たのに,
すでに ストレート の役を使ってしまっているとき
などは悲劇です。 ACES では (1 がひとつしかな
いので)1点しか入りませんし, SIXES にして
6 . 6 • 5 • 4 • 3なんて役が次に出た日には日
も当てられません。どの役を割り振る力*,この選
択が運命の別れ目となります。どうぞ悩み抜いて
ください。
I S M E T M
- E ^r E Sr T d*_ 0 び - ル -? KiU
0 — 0 — 0 *
BASIC SECTION SCORE 1/// /// /// ///
ACES
DEUCES
TREVS
FOURS
5FIVES …
KISMET SECTION SCORE /// /// /// ///
FLASH
⑽ R
tS^Rcore i///}///!///I///i
0 -————
籲 S-OS の系譜 (18)
S - OS は金機種共通の BIOS (Basic Input Out
put System ) + マシン 語モニタという体裁でスタ
ートしました。 X 68000 でいうならば BIOS は IOC
S , マシン 語モニタはデバッガといったところで
しよう 力、 ただ, マシン 語モニタにはプログラム
をデバッグする機能はなく, マシン 語プログラム
の入力,ロード/セーブなど限られた機能が与え
られていたにすぎません。
それを最もよく表しているのがプログラムの実
行方法です。マシン語プログラムは,まずプログ
ラムをメモリに読み込み,それからスタート#地
にジャンプするという方法で実行されました 。 S
- OS のモニタはマシン語プログラムをロードす
るアドレスを自分で指定できるようになっていま
す。 Z 80 のマシン語プログラムながらリロケータ
ブルに作られた MACINTO - S は,この機能を利
月 J してユーザーが自分の好きなアドレスで実行で
きるようになっていました。
“ SWORD ” になってディスクを扱えるように
なっても,この部分は荧わりませんでした。シエ
ルではなくモニタなんだという信念が開発者にあ
ったからです。ただ,これでは少々使いづらいの
ではないか,という提言もあり,1986年10月号で
RUN コマン ドが追加されたのはこの コーナーで
すでに紹介したとぉりです。
そして1987年5月号では, FuzzyBASIC の作
者である瀧山氏によりさらなる拡張が施されまし
た c RUN コマンドは プログラムのロード. ジャ
ンプをひとつの命令で行うものでした力 ? ,さらに
パラメータを プログラムに渡すことができるよう
に改良されたのです 。 RUN コマンドはコマンド
ライン先頭に R を入力していました力 f , これはス
ペースに変更されました。この改造によってプロ
グラムの実行は,プログラム名だけを入力する,
CP / M や Human のような方法になったわけです。
同時に RAM ディスクもサポートされ,これまで
テープでイライラしながら起® J を 待っていたプロ
グラムの高速起® J が実现されました。
THE SENTINEL 137
SENTINEL
全機種共通 S-OS“SWORD ” 要
ダィスゲ - ム kismet
サイコロを使ったポーカーといろ風合いのゲーム, KISMET で
す。ちなみに KISMET の意味は「幸運」。でも高得点を狙うに
Sakaki Takuya はかなりテクニックも必要とされるみたいですね。このゲームを
榊卓也 実行するには SLANG が必要です。
ゲー厶の®
SLANG コンパイラを使ったダイスゲー
ムです。5個のサイコロを振って15の役を
作り,総得点を競うゲームです0あまり知
S れていないゲームですので,最初に概要
を説明 t ておきましょう。
サイコロ を使用します。普通のサイコロ
で, yr きなくはな し 、のですが,この ゲーム
で使うサイコロは目が3色で塗り分けられ
ています。1, 6が青,2,5が赤,3,
4が緑です。ゲームは1〜4人で行います0
まず, 6 名前を登録し,最初の人からこのよ
うなサイコロを5個同時に振り,出た目の
組み合わせによって役(ポーカーに似てい
る)を決めて i 、 〈のです。
今间はこれで目的の役が完成していれば
スペース キーを押して役の登録を行います0
プレイヤーは役ができていなかった場合
ゃもっと違う役を狙いたい場合はそのうち
の2個のサイコロを振り直してもかまいま
せん(というより,第1投の出目を見て役
を狙うのですが)。振り直すときは A,D
キーまたはテンキーの4,6でサイコロを
選び,リターンキーを押します。
こうして15回役を作ります。といっても
ひたす4高い役を目指すのがゲームの目的
ではありません。 KISMET に存在する役
は?5種類。これらをひとっずっ作っていく
のです。サイコロによってできた目はプレ
イヤーが評価して,どの役を狙ったものか
をす旨定します。15回の試行はどれもなんら
かの役に割り当てられなければなりません。
うま〈役ができなかったときは,どれかの
役をつぶさなくてはいけないのです。どの
役をどの時点でつぶすかがこのゲームの決
め手になってきます。こうして成立した役
から得点を合計して勝負が決まるわけです。
役の内容
役は大きく分けて BASIC セクションと
KISMET セクションの2種類があります。
1) BASIC セクション
ACES から SIXES まであり,その数字
の サイ コロの 目のみ得点となります。
得点=その役のサイコロの目 x 個数
となります。つまり,
1, 2,1, 5,1
という目を “ ACES ” として登録するのな
らなら得点は3となります。
2) KISMET セ クション
基本的なところはポーカーの役とよ〈似
ています。ただ,サイコロの目の色によっ
て成立する役があります。得点は,
得点=目の総和+ボーナス
というのが基本となっています。
では役を解説しましょう。
• TWO PAIR SAME CO し OR
同じ色同士のツーペアです。残り1個の
目はなんでもかまいません。
• THREE OF A KIND
いわゆるスリーカードです。3個の目が
同じなら残りはなんでもかまいません。
• STRAIGHT
いわゆるストレートです。5個の目が続
き番号になっていなければなりません。
籲 FLUSH
いわゆるフラッシュです。同じ色だけで
できた手です。
春 FU しし HOUSE
いわゆるフルハウスです0
• FU しし HOUSE SAME CO し OR
フルハウスの うち,カードがすべて同じ
色の場合です。
• FOUR OF A KIND
いわゆるフォーカードです。
•YARBOROUGH
これはなんでも点になります。目の総和
が高いときにでも指定してください。
• KISMET
いわゆるファイブカード。すべてのサイ
コロの目が同じ場合です。
これらの役を見てわかるように上位の役
は下位の役の代わりになります。たとえば,
1 , 1 , 1 , 6,6
のような FULLHOUSE SAME COLOR
は , TWO PAIR SAME COLOR,THRE
E OF A KIND , FLUSH , FULLHOUSE ,
YARBOROUGH , ACES , SIXES のいず
れのように指定しても有効となります。
KISMET セクションの得点は,
TWO OF A KIND 合計
THREE OF A KIND 合計
STRAIGHT 30
FLUSH
35
FULLHOUSE
合計 +15
FULLHOUSE SAME COLOR
合計 + 20
FOR OF A KIND
合計 +25
YARBOROUGH
合計
KISMET
合計+50
となります。
BASIC セクシヨンでは各々の数字の合
計しか得点になりませんが,集計のときに
この部分の合計が63点以上なら35点,71点
138 Oh! X 1991.2.
以上なら 55 点の,79点以上なら75点のボー
ナスがつきます。
生意
SLANG を使つている方ならコンパイル
作業は特に説明の必要はないでしょう 。 S
LANG を立ち上げてそのまま,
]CKISMET
のように入力してください。なお, MZ -
2500や Xlturbo の方は忘れずに25行モー
ドにしてから実行してください。
キー操作は カーソル 移動に カーソルキー,
テンキー, “ W , X , A , D ” を使用します。
なお,高得点をあげるためには KISME
T セクションにばかり点を集中せずに , B
ASIC セクションで平均3個以上の得点を
記録してボーナスを狙う必要が出てきます。
ホ* 氺
色が出ないと寂しいので当初は MAGIC
を使うつもりでしたが動かなくなる機種が
多いのでやめました。同じ色の目には同じ
キャラクタを使っているのでなんとかわ
かってもらえるのではないでしようか。
U スト 1
1
/» t/
103
2
/專 KISMET XI .SL 零/
104
DICE
PRT()
3
/* «/
105
VAR I;
4
/* for S-OS SLANG COMPILER */
106
BEGIN
5
ft ver . 1.01 *90.08.21 家/
107
FOR 1=0 TO 4 i
6
/* T.SAKAKI & M.NAQIRA */
108
DICE SUBUJO+m,
,1);
7
/* "
109
J
8
110
END;
10
ARRAY BYTE DICK[4]=[l,1 f 1,1,1];
112
11
ARRAY SC[3】【14】;
113
DICE 一
SUB(I,X,Y)
12
114
BEGIN
13
VAR PS MAX=3 f PS=0 f YK=O;
115
CASH DICEJI] OF [
14
VAR HOLD=0;
116
1: 1
15
117
1% COLOR(1); 拿/
16
CONST NONSELECT=851;
118
LOCATE(X t Y);
PRINT ( H
17
CONST BUFF=$E00O;
119
LOCATE(X,Y+U ;
PRINT( M t );
18
CONST COLORF=$0026;
120
LOCATE(X,Y + 2);
PRINT(" H );
19
121
]
20
122
2 : [
21
CAST DICE()
123
/t COLOR ⑴; 本/
22
VAR I;
124
し OCATE(X.Y);
PRINT (,•曾");
23
BEGIN
125
LOCATE(X,Y+l>;
PRINT (” ");
24
FOR 1=0 TO 4 [
126
LOCATE(X,Y42);
PRINT( M ぎ.};
25
IF BIT(HOLD f I) == FALSE
127
]
26
27
DICB[I)=RND(6)+1;
]
128
129
,拿' ; 拿/
28
DICK PRT();
130
LOCATE(X,Y);
PRINT("O *);
29
END;
131
LOCATE(X,Y+U ;
PRINT ( •,〇 .い;
30
132
LOCATE(X,Y+2);
PRINT( M O u );
31
133
]
32
CA8T()
134
4 : [
33
VAR I,KEY;
135
/< COLOR(4); */
34
BEGIN
136
LOCATE(X.Y);
PRINT(°0 0 M );
35
IF HOLD == 000111 UB
137
LOCATE(X,Y+l>;
PRINT (•’ M );
36
EXIT;
138
LOCATE(X,Y + 2}:
PRINT (”0 0 M );
37
REPEAT [
139
]
38
KBUF CLR();
140
5 : [
39
WAIT(5);
141
/* COLOR(2); */
40
CAST DICB();
142
LOCATE(X,Y);
PRINT( M ® «•);
41
IF (KEY=INKEY(0)) == $1B ft GETKEY t!
143
LOCATE(X,Y+1) :
PRINT (” ®
42
STOP();
144
LOCATE(X,Y+2) :
PRINT( ;
43
J UNTIL KEY == • 1 ;
145
]
44
KBUF CLR();
146
6 : t
45
FOR 1=0 TO 2 [
147
/* COLOR(1); 拿/
46
WAIT<7 + I 拿 7 >;
148
LOCATE(X,Y);
PRINT ("本尊“);
47
CAST DICE();
149
LOCATE(X,Y+l);
PRINT (••零本”);
48
]
150
LOCATE(X,Y+2);
PRINTr. 拿 * n );
49
END;
151
]
50
152
]
51
153
/*
COLOR ⑺; */
52
HOLD OR CAST()
154
END;
53
VAR I f J,X,Y f XO,IO;
155
54
BEGIN
156
55
HOLD=000U111B;
157
HOLD 一
CUR(I t X f Y)
56
1=0; 10=0;
158
BEGIN
57
XO=20; Y=1;
159
CASE I OF (
58
KBUF CLR();
160
0 : 【
59
WHILE TRUE l
161
LOCATE(X.Y);
PRINT( M "};
60
X=I 拿 4+20;
162
LOCATE(X t Y+l) :
PRINT《”
61
IF BIT(HOLD,IO) == TRUK [
163
LOCATE(X,Y+2);
PRINT( " ••};
62
DICE SUB(IO,XO f Y);
164
J
63
】 ELSE 『
165
1: (
64
HOLD_CUR(0,XO t Y);
166
LOCATE(X,Y>;
PRINTr ? *');
65
) ENDIF;
167
LOCATE(X,Y+l);
PRINK M ? ?••>;
66
WAIT(10);
168
LOCATE<X,Y+2> ;
PRINT (”? H );
67
HOLD CUR(l,X f Y);
169
]
68
WAIT(10) :
170
]
69
XO=X; IO=I;
171
END;
70
CASE INKBY(0) OF 【 /t GETKEY t/
172
71
• 1 •• l
173
72
DICE^PRT();
174
MAIN()
73
EXIT;
175
VAR TURN;
74
1
176
BEGIN
75
177
WHILE TRUE [
76
IF I == 0 1=4;
178
INITO;
77
ELSE —I;
179
TITLE();
78
1
180
INTGET();
79
, 6 > f f D , :[
181
80
IF I == 4 1=0;
182
REPEAT [
81
ELSE ++1;
183
INIT SC();
82
J
184
BG PRT();
HIT SPC();
83
$0D, , 5 , t , S , : [
185
84
IF BIT(HOLD,I) == FALSE [
186
FOR TURN=1 TO15 [
85
HOLD=SBT(HOLD p I);
187
FOR PS=0 TO
PS_MAX [
86
】 ELSE [
188
HOLD=0;
87
HOLD=RESET(HOLD,I);
189
NAME();
88
)ENDIF;
190
LOCATE(24+PSt4,5);
89
KBUF CLR();
191
PRINTS
••家.,);
90
]
192
CAST();
91
$1B : STOPO;
193
HOLD^OR CAST( ) ;
92
•G,: l
194
CAST( ) ;
93
HOLD=0;
FOR J=0 TO 4 l
195
LOCATE(l f
2);
94
196
PRINT(
•• CAST ONCE M<
95
HOLD CUR(0 f Jt4«*-20,Y) ;
197
HOLD OR CAST( );
96
]
198
CAST( ) ;
97
]
199
IF TURN !
= 15 【
98
]
200
SELECT ㈠;
99
KEY WAIT( J ;
201
】 ELSE l
100
]
202
LAST1 ();
101
END;
203
HIT SPC( );
102
204
1 ENDIF;
KISMET 139
140
205
LOCATE<24+PS 拿 4,5>
331
LOCATE(0,0)
206
PRINT < PS+U ;
332
PRINTT*
“KISMET "”);
207
1
333
LOCATE(0,4)
208
]
334
PRINT (”
BY M.N.&T.S.tt ");
209
335
LOCATE(0,6)
210
TOTALU ;
336
PRINT( M
BASIC SECTION SCORB¥N M );
211
]UNTIL REPLAYO ;
337
PRINT( •,
ACKSYN M );
212
1
338
PRINK "
DBUCESVN M );
213
END ;
339
PRINT( M
TREYSVN ");
214
340
PRINTT
FOURS¥N”>;
215
341
PRINT("
FIVESVN M );
216
KBUF CLR()
342
PRINT( M
SIXBSYN 1 *);
217
BEGIN
343
PRINT("
KISMET SECTION SCORE¥N u );
218
WHILE INKEY(0) != 0 [ /拿
GBTKEY t/
344
PRINT( M
TWO PAIR SAMECOLORYN 0 );
219
J
345
PRINTr
THREE OF A KIND¥N">;
220
END ;
346
PRINT( ••
STRAIGHT¥N H );
221
347
PRINT("
FLASHVN * 1 );
222
348
PRINT( U
FULLHOUSEVN 11 );
223
WAIT ⑴
349
PRINT (”
FULLHOUSE SAMECOLORYN ");
224
VAR WT.KBY ;
350
print r.
FOUR OF A KINDVN M );
225
BEGIN
351
PRINTC 1
YARBOROUGH¥N M ) ;
226
WT=100 ;
352
PRINT("
KISMET¥N">;
227
I=ItWT ;
353
PRINK M
TOTAL SCORE");
228
WHILE I— != 0 l
354
229
IF (KEY=INKEY(0)) != 0 [
/拿 GETKEY 拿 /
355
BOX PRT(0,1
•18,3 );
230
1 = 0 ;
356
FOR 1=0 TO
4 [
231
1 ENDIF ;
357
BOX PBT(19+1*4,0,23+1*4,4 );
232
]
358
J
233
END(KEY );
369
BOX PRT(1,5
,22,24 );
234
360
FOR 1=0 TO
3 [
235
361
BOX PRT(22+I*4,5,26+I*4,24 );
236
SELECT()
362
LOCATB( 23+1*4, 6 ); PRINT( _•///”> ;
237
VAR Y,YO,KEY,YKO;
363
LOCATB(23+1*4,13 ); PRINT("///">;
LOCATE(23+1*4,23) ; PRINT("/// H )!
238
BBOIN
364
239
YK=0 ; YK0=14:
Y=7 ; YO=22 ;
365
1
240
366
FOR 1=0 TO PS MAX [
241
WHILE TRUE [
367
L0CATE(244I«4,5 ); PRINT(I+1 );
242
LOCATE(1,2 );
368
]
243
PRINT( M • S E L B C T t
369
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
IF Y
YO
LOCATE!2,YO ); PHINT( M
IF SC(PS][YKO] == NONSELECT 【
L0CATE(23^PSI4,Y0) ; PRINT{ M >
J ENDIF;
IF SC[FS)[YK] == NONSELECT [
LOCATE(2 f Y) ; PRINT< ;
LOCATED 23 + PSM, Y > ; PRINT( >
]ELSE [
LOCATE(2,Y) ; PRINT(
】 ENDIF ;
YO=Y ; YKO=YK ;
J ENDIF ;
KEY=INKBY(0 ); /t GBTKEY t/
KEY_WAIT ();
CASE KEY OF [
SOD : (
IF SCIPSHYK 】 ==NONSELECT 【
JUDGE ();
LOCATE(23 + PS 拿 4 ,Y) ••
PRINT(FORM$(SC(PS][YKK3))
LOCATE(2 t Y) ; PRINT( M ••);
IF HIT 一 SPC(> == , C , [
LOCATE(23+PS«4 f Y );
PRINT< ;
LOCATE(2 ,Y );
PRINTr>..> ;
SCIPSHYKJ :: NONSELECT;
]ELSE [
DICB^PRT ();
END :
FOR I=Y+1 TO YE-1
LOCATE(X 9 l)\
LOCATE(XE.I );
1
370
371
372
373
374 BOX^PRT(X t Y,XE,YE)
375 VAR I ;
376 BEGIN
377 LOCATE(X f Y ); PRINT(“0">;
378 FOR I=X+1 TO XE-1[PRINT( M - H )
379 LOCATE(XE,Y) : PRINT<"0”>;
380
381
382 LOCATE(X ,1 》; PRINT("I
383 LOCATE(XE,1 ); PRINT に TM ;
384
385
386
387
388
389 END ;
390
391
392 SN 一 CHK ⑴
393 VAR J,K ;
394 BEGIN
396 KS r j=0 TO 4 [
397 IF DICE(J] == DICE[I)
398 ++K
LOCATE(X ,YE) : PRINK "0 ");
FOR I=X+1 TO XE-1[PRINTC'
LOCATE(XE.YE) ; PRINTT'O ");
273
EXIT FROM FUNC ;
399
]ENDIF ;
274
)ENDIF ;
400
1
275
]ENDIF ;
401
BND(K );
276
1
402
277
, 2 ,, T : 【
403
278
IF Y ==12 [
404
SC NUM(I)
279
Y=14 ; YK=6 ;
405
VAR J , K;
280
]BF Y == 22 [
406
BEGIN
281
Y=7; YK=0 ;
407
K=0 ;
282
)ELSE 【
408
FOR J=0 TO 4 [
283
♦ ♦Y; +4-YK ;
409
IF DICE[J] 5= DICB[1](
284
)ENDIF ;
410
++K;
285
]
411
J EF 《DICEIJJ ♦ DICBII]) == 7
286
, 8 •• ,い : l
412
♦ ♦K;
287
IF Y ==14 [
413
J ENDIF ;
288
Y=12 ; YK=5 ;
414
1
289
)BF Y 7 [
415
END(K );
290
Y=22 ; YK=14 ;
416
291
】 ELSE 【
417
292
--Y ; --YK;
418
ALL SUM()
293
]ENDIF ;
419
VAR I,SUM ;
294
J
420
BEGIN
295
$1B : STOP い;
421
SUM=0 ;
296
]
422
FOR 1=0 TO 4 {
297
]
423
SUM=SUM+DICE[IJ ;
298
END ;
424
]
299
425
END(SUM) :
300
426
301
INIT SC()
427
302
VAR I,J ;
428
JUDGE()
303
BEGIN
429
VAR I,J;
304
PRINT ( ,, ¥C M );
430
BEGIN
305
FOR 1=0 TO PS MAX I
431
SCIPS 丨 【 YK 】 =0;
306
FOR J=0 TO14 [
432
307
SC[I)[J)=NONSELBCT ;
433
CASE YK OF 【
308
]
434
00 TO 05 : I 1% BASIC SEC
FOR 1=0 TO 4 l
309
J
435
310
END;
436
IF DICE1IJ == YK+1{
311
437
SC[PS][YK]=SCIPS][YK]
312
438
]ENDIF ;
313
KEY WAIT()
439
]
314
VAR I,J,K WT1,K WT2 ;
440
06 : 【 /拿 TWO PAIR J
315
BEGIN
441
316
K WTU1500 ;
442
SORTO ;
317
K WT2=1500 ;
443
CASK SC NUM(1) OF l
318
FOR 1=0 TO K WT1 【
444
01 TO 03 : EXIT;
319
IF INKBY(0) == 0 [ /t GBTKBY 拿 /
FOR J=0 TO K WT2 [
1
445
04 : [
320
321
446
447
IF SN CHK ⑴ ==1 【
BXIT ;
322
EXIT FROM FUNC ;
448
】 EF SN CHK ⑴ == 3 [
323
】 ENDIF;
449
BXIT ;
324
J
450
]ENDIF ;
325
END;
451
SCtPSltYKl^ALl SUM() ;
326
452
J
327
453
05 : l
328
BG PRT()
454
SCIP8] 【 YK】::ALL SUM() ;
329
VAR I ;
455
)
330
BEGIN
456
J
Oh! X 1991.2.
►マシン語カクテルを M るとペンギン,艰脳倶楽部では犬,という西川さんの正体は(音
楽が彳か2:そうなので),昔テ レ ビの コマーシャルで出ていたへッ ド ホンをつけていたサルで
しょ? あ, ぉこらないで。 水|つ啮雄 (21)40; ■:邡
457
]
583
IF (KBY=INKBY(0)) == $1B 1% GBTKBY 拿 /
458
07 : [ ft THREE OF A KIND 拿 /
584
STOP ();
459
SORT ();
585
]UNTIL (KEY == , M OR (KEY == , C,};
460
IF SN CHK(2) >= 3 [
586
BND(KBY );
461
SC[PS][YK]=ALL SUM ();
587
462
J BNDIF ;
588
463
1
589
HIT_ANY(X f Y>
464
08 : l ft STRAIGHT </
590
VAR KEY;
465
SORTO ;
591
BEGIN
466
J=1 ;
592
REPEAT [
467
FOR 1=0 TO 3 [
593
KBUF CLR( ) ••
468
J=J$(DICEII+1]-DICEtI ));
594
LOCATK(X,Y>; PRINT(" HIT ANY KEY ! ! ,”;
469
1
595
LOCATE(X,Y>; PRINT(SPC$(17 ));
IF (KEY=INKEY(0)) == $1B ft GETKEY */
470
IF J 1[
596
471
SC[PS][YK]=30;
597
STOP ();
472
J ENDIF ;
598
】 UNTIL KEY != $00 ;
473
1
599
END ;
474
09 : I /% FLASH 拿 /
600
475
IF SC NUM(0) == 5 【
601
476
SCtPSJ[YKJ=35 ;
602
REPLAY()
477
]BNDIF ;
603
VAR I ;
478
1
604
BEGIN
479
16 【 1% FULLHOUSE %/
605
LOCATE( 1,2 ); PRINT(•• REPLAY(Y/N)? ••);
480
SORTO ;
I=SN CHK(0 >;
606
KBUF CLR ();
481
607
LOCATE(15,2 );
482
J=SN CHK(4 );
608
WHILE TRUE l
483
IF (ItJ) r= 6 [
609
CASE INKEY ⑴ OF [
484
SC 【 PS 】 [YK】=ALL SUM( )4-15 ;
610
•Y ••,,,拿 0D :[
485
】 EF I =:: 5 【
611
I=FALSE ; EXIT ;
486
SC[PS][YK)=ALL SUM()+15 ;
612
»N f : [
487
]ENDIF ;
613
488
]
614
I=TRUE ; EXIT;
489
11 : l 1% FULLHOUSE SAHBCOLOR 拿 /
615
$1B : STOP ();
490
SORT ();
616
491
IF SC NUM(0) != 5 [
617
]
492
EXIT ;
618
)
493
]BNDIF ;
619
END(I );
494
I=SN CHK(e );
620
495
J=SN CHK(4 );
621
496
IF (I«J) == 6 [
622
TITLE()
497
• SC(PS][YK)=ALL SUM( )-^20 ;
623
VAR I,J ;
498
)EF I == 5 [
624
BEGIN
499
SC[PS 】 lYK]=ALL_SUM( ) + 20 ;
625
LOCATB(0 f l );
500
】 ENDIF ;
626
PRINT( H O O
501
1
627
PRINT(" OO 00
PRINT( M 000 00 00
502
12 : [ 1% FOUR OF A KIND 拿 /
628
503
SORT";
629
PRINT(" 0 0 寒拿拿 000 场
504
IF SN CHK{2) >= 4
630
PRIHT( M 0 0 拿 0 0 鏽
505
SC? PS][YK J =ALL^SUM( >+25;
631
PRINT( M t % 0 0 t 拿拿拿 9
506
1
632
PRINTr 拿 e 韋⑭
507
13 [ 1% YARBOROUGH t/
633
PRINT(" 享寡拿 ^ 拿拿拿
508
SCIPSHYK]=:ALL SUM ();
634
PRINT (" 拿
509
1
635
PRINT( M 拿拿拿拿
510
14 : 【ハ KISMET! t/
636
LOCATE(0,12 );
511
IF SN CHK{0) == 5
637
PRINT{" PROGRAMMED BY M.N. & T.S.¥N">;
512
SCTPS][YK]=ALL SUM()+50 ;
638
PRINT r , ¥N">;
513
]
639
PRINT( M FOR S-OS SLANG COMPILERVN **);
514
]
640
FOR 1=0 TO 4 [
515
END ;
641
BOX PRTI2+I 拿 8.19 f 6+I 拿 8,23} ;
516
642
DICE SUB(I f 3+I*8,20 );
517
643
1
518
SORT()
644
HIT ANY(11,17 );
519
VAR GAP,I,J ;
645
KBIJF^CLR ();
520
BEGIN
646
FOR J=0 TO 6 (
521
QAP=3 ;
647
FOR 1=0 TO 4 [
522
FOR 1=0 TO 2 [
648
DICE[I]=RND(6)+1 ;
523
FOR J=0 TO 4-GAP 【
649
DICE SUB(1,3+1 拿 8,20>;
)
524
IF DICEIJ1 > DICEIJ+GAP]
650
525
SWAP(J,J+GAP );
651
WAIT(10 );
526
]
652
]
527
—GAP;
653
WAIT(50 );
528
]
654
END ;
529
530
END;
655
656
531
657
INTGET()
532
SWAP(I f J)
658
VAR I,KEY :
533
VAR TEMP ;
659
BEGIN
534
BEGIN
660
FOR 1=0 TO 7 l
535
TEMP=DICEII1;
661
LOCATE(1,16+1 ); PRINT(SPC$(38)) ;
536
D1CEJIJ=DICB[J ];
662
]
537
DICBtJJsTBMP;
663
BOX,PRT(02 f 16 f 37 f 23 );
538
END ;
664
539
665
LOCATE(04,17) ; PRINT("HOW MANY PLAYERS?(1-4) M )
540
666
WHILE TRUE l
541
TOTAL()
667
LOCATE(26,17);
542
VAR B SC f K SC,T SC,BONUS;
668
PRINT(SPC$(5) );
543
BEGIN
669
LOCATE(26,17 );
544
FOR PS=0 TO PS_MAX l
670
KEY=INKEY(1) ;
545
671
PRINT(KEY- , 0 , ) ;
546
B SCr0;
672
IF KEY< , 5 , AND KEY> *0* l
547
K 一 SC=0;
673
PS MAX=KEY- , 0 , -l ;
548
T SC=0 ;
674
EXIT ;
549
BONUS=0 ;
675
】 EF KEY == «1B f
550
676
STOP() ;
551
KBUF CLR ();
677
)ENDIF ;
552
NAMB (*) ;
WAIT(150) ;
678
]
553
679
554
FOR YK=0 TO 5 [
680
FOR PS=0 TO PS MAX [
555
B SC=B SC+SC 【 PS 】【 YK];
681
LOCATE ( 04,19-fPS) ;
556
LOCATE(23-fP8t4 t 6 );
682
PRINT( M INPUT YOUR NAME,PLAYER”>;
557
PRINT(FORM$(B SC,3)) ;
683
PRINTIPS+l ); PRINT (••••. い;
558
]
684
LINPUT(BUFF+PS t$10 f 9 );
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576 HIT 3PC()
577 VAR KEY
578 BEGIN
WAIT(150 );
FOR YK=6 TO14 [
K_SC=K__SC+SC 【 PS 】【 YK 】;
LOCATBT23+PS 拿 4 丨 13) ;
PRINT(FORM$(K^SC,3 ));
]
WAIT(150 );
IF B SC > 62 BONUS=35 ;
IF B SC > 70 BONUS=55 ;
IF B SC > 78 BONUS=75 ;
T__SC=B_SC+K_SC+BONUS;
l5cATE<23+PS 拿 4,23 >;
PRINT(FORM$(T_SC f 3 ));
1 : WD ;
579
580
581
582
REPEAT [
KBUF_CLR(};
LOCATB(l,2 );
LOCATB(l f 2 );
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704 NAMB()
705 BEGIN
IF MEMW 【 BUFP+PS 拿 $10] == $2020 [
CASE PS OF l
MEMWlBUFF+$00 】 =$3158;
MEMW[BUFF+$10J=$5A4D ;
02
MEMWlBUFF-«-$20J=$484F ;
MEMWIBUPF ♦ 拿 22] = $5821••
MEHW[BUFF+$30] ^13658 ;
MEMW[ BUFF+$32 】 :: 拿 4B38 ••
END;
PRINT(.. HIT SPACE KEY
PRINT(SPC$(17 ));
706
707
708
LOCATB(1,2 );
PRINT("PLAYER"
PRINT(PS^l );
►電脳倶楽部の ボールペン, ありがとうございました。さっそく砂時計の時間を計ったと
ころ,約3分10秒でした。カップラーメンを食べるとき(ほとんどないが)にでも使わせ KISMET 141
ていただきます。もちろん,ボールペンとしても使いますけど。 松本太 (20) 大阪府
709 PRINT(MSX$(BUFF+PS*$10 ));
710 END;
711
712
713 INITO
714 BEGIN
715 WIDTH(40 );
716 PRINT ( M ¥C );
717 /t INIT^JSO ; t/
718 END ;
719
720
721 LAST1()
722 VAR I,Y;
723 BEGIN
724 FOR 1=0 TO14 [
725 IF SCIPSHI] == NONSBLBCT
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
Y=I + 7-MYK>5 );
JUDGE ();
LOCATE(23+PS»4,Y );
PRINT(FORM$<SC 【 PS 】 lYK 】, 3> >;
EXIT FROM FUNC ;
]BNDIF ;
]
END ;
本 ORIGINAL PROGRAMMED BY M,NAGUIHA
f t FOR CZ-8FB01 VI.0
r t S-OS VERSION PROGRAMMED BY T.SAKAKI
,拿 FOR SLANG COMPILER
拿 MACHINE : CZ-851CR,CZ-880CB
拿 SPECIAL THANKS TO MR.ASO
全機種共通システムインテックス
■ 85 年6月号--
序論 共通化の試み
第1部 S - OS “ MACE ”
第2部 Lisp -85 インタプリタ
第3部チェックサムブログラム
■ 85 年 7 月号 一
第4部マシン語ブログラム開発入門
第5部エディタアセンブラ ZEDA
第6部デバッグツール ZAID
■ B 5 年8月号
第7部ゲーム開発パッケージ BEMS
第8部ソースジェネレータ ZING
■ 85 年 9 月号 一
インタラブト S - OS 番外地
第9部 マシン語入カツール MACINTO-S
第10部 Lisp -85 入門(丨:
■ 85 年10月号一
第11部仮想マシン CAP - X 85
連載 Lisp -85 入門⑵
_85 年 11 月号——
連載 Lisp -85 入門 (3)
■ 85 年 12 月号——
第12部 Prolog -85 発表
■86 年1月号-一
第13部リロケータブルのお話
第14部 FM 音源サウンドエディタ
■ B 6 年2月号一
第15部 S-OS “ SWORD "
第16部 Prolog -85 入門⑴
■ B 6 年3月号-一
第17部 magiFORTH 発表
連載 Prolog -85 入門⑵
■ 86 年4月号一
第18部思考ゲーム JEWEL
第19部 LIFE GAME
連載 基礎からの magiFORTH
連載 Prolog -85 入 PK 3)
■ 86 年5月号
第20部スクリーンエディタ E-MATE
連載 実戦演習 magiFORTH
■88 年8月号一
第21部 Z 80 TRACER
第22部 magiFORTH TRACER
第23部ディスクダンプ&エディタ
第24部 " SWORD ” 2000 QD
連載 対話で学ぶ magiFORTH
特別付録 PC -8801 版 S -0 S " SW 0 RD ”
■86 年7月号一
第25部 FM 音源ミュージックシステム
付録 FM 音源ボードの製作
連載 計算カアップの magiFORTH
特別付録 SMC -777 版 S -0 S “ SW 0 RD ”
■ 86 年8月号一
第 2 S 部対局五目並べ
第27部 MZ - 2500版 S -0 S " SW 0 RD "
■ 86 年9月号 ——
第28部 FuzzyBASIC 発表
連載 明日に向かって magiFORTH
_86年10月号一-
第29部ちょっと便利な拡張プログラム
第30部ディスクモニタ DREAM
第31部 FuzzyBASIC 料理法く1>
■ 86 年11月号--
第3 2部 バズノレデーム H 0 TTAN
第33部 MAZE in MAZE
連載 FuzzyBASIC 料理法く 2>
■ 86 年12月号一
第 34 部 CASL & COMET
連載 FuzzyBASIC 料理法 <3>
■ 87 年1月号一
第35部マシン語入カツール MACINT 0 -C
連載 FuzzyBASIC 料理法く4>
■ 87 年2月号一
第36部アドベンチャーゲーム MARMALADE
第37部テキアベ作成ツール C 0 NTEX
■ 87 年3月号
第38部魔法使いはアニメがお好き
第39部アニメーションツール MAGE
付録 “ SWORD ” 再掲載と MAGIC の標準化
■ 87 年4月号-
第40部 INVADER GAME
第41部 TANGERINE
■ 87 年5月号
第42部 S -0 S “ SW 0 RD " 変身セット
第43部 MZ -700 用 “SWORD ••を QD 対応に
■ 87 年6月号
インタラプトコンノヽ•イラ物言吾
第44部 FuzzyBASIC コンパイラ
第45部エディタアセンブラ ZEDA -3
■ 87 年7月号
第46部 STORY MASTER
■ 87 年8月号
第47部パズルゲーム碁石拾い
第 4 B 部漢字出カパッケージ JACKWRITE
特別付録 FM -7/77 版 S -0 S " SW 0 RD "
■ 87 年9月号——一——
第49部リロケータブル逆アセンブラ Inside-R
特別付録 PC -8001/8801 版 S -0 S “ SW 0 RD ”
■ 87 年10月号 ——
第50部 tiny CORE WARS
第51部 FuzzyBASIC コンパイラの拡張
第52部 XI turbo 版 S -0 S " SW 0 RD ”
■ 87 年11月号
序論 神話のなかのマイクロコンピュータ
付録 S -0 S の仲間たち
第53部もうひとつの FuzzyBASIC 入門
第54部ファイルアロケータ& ローダ
インタラプト S -0 S こちら集中治療室
第55部 BACK GAMMON
■ 87 年12月号
第56部タートルグラフィックパッケージ TURTLE
第57部 Xlturbo 版 “ SWORD " アフターケア
ラインプリントルーチン
特別付錄 PAS 0 PIA 7 版 S -0 S “ SW 0 RD ”
■ 88 年彳月号-
第 5 B 部 FuzzyBASIC コンパイラ•奥村版
付録 石上版コンパイラ拡張部の修正
■ 88 年2月号-
第59部シューティングゲーム ELFES
■ 88 年3月号 一—
第60部構造型コンパイラ首語 SLANG
■ 88 年4月号-
第61部デバッギングツール TRADE
第62部シミュレーションウォーゲーム WALRUS
■ 88 年5月号——
第63部シューティングゲーム ELFES II
第64部地底最大の作戦
■ B 8 年6月号-
第65部構造化首語 SLANG 入門: I )
第66部 Lisp -85 用 NAMPA シミュレーション
■ 88 年7月号 一
第67部マルチウィンドウドライバ MW -1
連載 構造化言語 SLANG 入門⑵
■ 88 年8月号--
第68部マルチウィンドウエディタ WINER
■ 88 年9月号-
第69部超小型エディタ TED -750
第70部アフターケア WINER の拡張
■ B 8 年10月号-
第71部 SLANG 用ファイル入出カライブラリ
第72部シューティングゲーム MANKAI
■ 88 年11月号-
第73部シューティングゲーム ELFES IV
_88年12月号 -
第74部ソースジヱネレータ S 0 URCERY
■ 89 年1月号
第7 5部パズルゲーム LAST ONE
第76部ブロックゲーム FLICK
■ 89 年2月号-
第77部高速エディタアセンブラ REDA
特別付録 X 〗版 S -0 S “ SW 0 RD ” く再掲載〉
■ 89 年3月号-
第78部 Z 80 用浮動小数点演算パッケージ S 0 R 0 BAN
■ 89 年4月号-
第79部 SLANG 用実数演算ライブラリ
■ B 9 年5月号-
第80部ソースジヱネレータ RING
■ 89 年6月号
第81部超小型コンパイラ TTC
■89 年7月号-
第82部 TTC 用パズルゲーム TICBAN
■ 89 年8月号-
第83部 CP / M 用ファイルコンバータ
■ 89 年9月号-
第84部生物進化シミュレーション BUGS
■ 89 年10月号-
第85年小型インタプリタ言語 TTI
■ 89 年”月号-
第88部 TTI 用パズルゲーム PUSH BON !
■ 89 年12月号- -
第87部 SLANG 用リダイレクションライブラリ
DIO . LIB
■ 90 年1月号-
第 8 B 部 SLANG 用ゲーム WORM KUN
特別付録再掲黻 SLANG コンパィラ
■90 年2月号
第89部超小型コンパイラ TTC ++
■90 年3月号-
第90部超多機能アセンブラ OHM - Z 80
■90 年4月号-
第91部ファジィコンビュータシミュレーショント MY
_9〇年5月号-
第92部インタプリタ言語 STACK
■90 年6月号-
第93部リロケータブルフォーマットの取り決め
第94部 STACK 用ゲーム SQUASH !
第95部 X 68000 対応 S-OS “ SWORD "
特別付録 PC -286 対応 S -0 S “ SW 0 RD ”
_9〇年7月,-
第96部リロケータブルアセンブラ WZD
■ 90 年8月号-
第97部リンカ WLK
■ 90 年 g 月号-
第98部 BILLIARDS
■ 90 年10月号-
第99部ライブラリアン WLB
■ 90 年11月号-
第100部タブコード対応エディタ EDC-T
■ 90 年12月兮-
第101部 STACK コンパイラ
■91 年1月号-
第102部ブロックアクションゲーム COLUMNS
* 以上のアプリケーションは,基本システムである
S-OS “ MACE ” または S -0 S “ SW 0 RD " がないと動作
しませんのでご注意ください。
142 Oh! X 1991.2.
前回はセンサー理論編ということで, A /
D コンバータに外付けするためのセンサー
回路を設計するための予備知識について解
説しました。実習回路例として,アルコー
ルセンサーと光センサーとを挙げましたが,
光センサーの回路では皆さんにはあまり馴
染みのないオペアンプという 1 C を使いま
した。実際,オペアンプは TTL -1 C に並
んで最もよく使われている 1 C のシリーズ
なのですが,アナログ信号用の 1 C という
ことで,これまでパソコン雑誌上で解説さ
れる機会は多くなかったように思います。
そこで今月はもう1回理論編ということに
して,オペアンプの使い方について徹底的
に学んでみたいと思います。
アナログ信号の増幅
アナログ信号がデジタル信号と異なる大
きな点は連続した f 直を取るということです。
10 月号の解説を読み返してみるとわかると
おり, A / D コンバータには分解能というも
のがあります0たとえば,フルスケール 5V
の8ビット A / D コンバータの最小単位は
5/256 = 0. 01953125 V ということになりま
す。ところが,アナログ量は連続量なので,
もちろん 0.0IV という量も存在します。 0.
01V が A/D コンバータに入力されたとし
ても分解能の 5/256V よりも小さいために
A/D 変換されたあとは 0V ということにな
ってしまいます。 0 . 01V でも 0. 011V でも 0.
019V であっても,そして本当に 0V のとき
も含めてすべて 0 V になってしまいます。
図 1 オペアンプの基本的な使い方
〇 Eo
1) 反転増幅器
そのようなデジタル量にぉける誤差(量
子誤差という)はアナログ量を扱うセンサ
一回路にぉいて重大な問題となります。な
ぜなら,センサーが自然界の物理量を検出
したときに,そのセンサーが感度の高い優
れたものであるほど,出力信号の大きさは
微小なことが多いからです。
先月の光センサー回路がそのよい例で,
フォトダイオードの電気的な信号出力をそ
のまま A / D コンバータに入れてもほとん
ど分解能以下になってしまうのです。その
ままではす ベて 0 V になって話になりませ
ん。したがって,光センサーで検出した光
の強度を A / D コンバータを通して パソコ
ンで処理しようとすれば, A / D コンバー
夕のフルスケール 5 V 近くまで信号を強め
てやらなければなりません。しかも,セン
サーの出力はアナログ量ですから,強めた
信号もそれと同じようにアナログ量でなけ
れば,都合が悪いのです。
そこで,あるアナログ信号を入力させて,
その定数倍(倍率という)の信号を出力す
るような回路が便利です。その回路をアナ
ログ増幅器というのです。たとえば,倍率
100倍の増幅器では,0.0 IV は IV に, 0.0
11 V は 1.1 V に,そして0.019 V は 1.9 V にな
るので,分解能 5/256 V の A / D コンバータ
ではその3つは区別できるのです。
パソコンの内部では,増幅器はそんなに
多く使われていないように思うでしようが,
FM 音源や AD PCM , CRT デイスプレイ
などのまわりは増幅器が必ず使われていま
す0もちろん,テレビやビデオ,オーデイ
才等の機器では,
ふたを開けるとど
こもかしこも増幅
器だらけです。そ
れだけ,アナログ
信号の増幅という
のは電子回路にお
いて大切な働きな
のです。
A / □コンバータを利用したセンサー回路の入門ですが,今回
は,そこで使われるオペアンブを詳しく取り上げてみましょラ。
アナログ信号の増幅ということでちょっとデジタル回路から離
れますが,利用度の高い 1 C ですからぜひ理解してください。
2) 非反転増幅器
アナロク H 臌)万齷^オペアンプ
オペアンプは演算増幅器 (Oprational
Amplifier ) の略で,アナログ信号の増幅
器としての基本的な機能をひとまとめにし
た 1 C です。増幅度の設定のために若干の
抵抗器などを外付けにする必要があります
力' デジタル回路における TTL-IC と同
じように中身はブラックボックスとして,
ただ端子どうしをつないでいくだけで大部
分の回路は組めてしまうものです。オペア
ンプを使った回路図を見ると,三角形とそ
のなかに十と一の記号しかありません。中
身は複雑な 1 C でも機能としてはそれだけ
単純明快なのです。
さて,オペアンプの初歩的な使い方には,
1) 反転増幅器(図1 - 1 )
2) 非反転増幅器(図1 - 2 )
の2種類があります。先月載せた光センサ
一の回路にある2段のオペアンプもこれら
の使い方をしているにすぎません。そこで
今回はこの2つに限定して説明します。
1) 反転増幅器
回路図の入力端子に Ei の電圧をかけた
ときに出力 Eo は
Eo =-( R f / Ri ) Ei
となります。このとき,入力電圧には正負
両方がかけられ,また出力電圧も正負両方
がありえます。したがって,倍率一 ( R f /
Ri ) が負ですから,入力が正のときは出
力が負,入力が負のときは出力が正という
ように「反転」します。これが反転増幅器
という意味です。電圧の絶対値の倍率は外
付けの R f と Ri の値を適当に選ぶことによ
って,自由に設定できます。もちろん R f
を Ri より小さくして倍率を1より小さく
することも可能で,この場合は増幅器とい
うよりは減衰器ということになります。
2) 非反転増幅器
回路図の入力端子に Ei の電圧をかけた
ときに出力 E 。 は,
ハードウェアエ作入門 143
Eo =(1 +R f/R i ) E i
となります。「非反転」の意味はもうおわか
りでしょう。倍率が正なので,出力電圧の
符号は入力電圧の符号に対して反転しない
からです。また,非反転増幅器の場合はど
のように抵抗値を設定しても倍率は1より
も大きい点も異なります。
オペアンプの代表的な2種類の回路につ
いて,以上のことを理解するだけで簡単に
使いこなすことができるのです。しかし,
もう少し一般的なオペアンプの让組みを理
解すると,オペアンプと外付け抵抗を使っ
たときになぜ上のような倍率が得られるの
かということを2つまとめて説明すること
ができます。興味のある人は囲み記事のは
うを参考にしてください。
オペアンプの使用例
では,先月号に:級せた光センサー间路で
のオペアンプの使い方を今述べた2つの基
本回路にしたがって考えてみましよう。図
2がその刖路図です。オペアンプが2段あ
りますが,1段目は反転増幅器と同じよう
な使い方で,電流増幅器といいます。これ
は,フォトダイオードの出力信号の電:流を
電圧に変える増幅器です。2段目は上で述
ベた非反転増幅器とまったく同じです。
1段目の回路を図1 - 1の反転増幅器と
見比べてください。入力電圧のところにフ
才トダイオードがつながっているのはわか
りま すが, 入力側の抵抗 R i がありません。
Ri がないとすると,倍率一 ( Rf / Ri ) を考
えると出力 E 。 は無限大になってしまうよ
うに思えますが,実際はフォトダイオード
に内部抵抗があり,ちょうど I 二 Ei / Ri に
相当する電流を流すのです。したがって,
フォトダイオードの出力電流が I のときに
出力 E 。 は,
Eo = R f I
となります。このように,信号源が一定電
流を流してくれるような場合には,反転増
幅器の入力抵抗を省略した形の回路を使い
ます。このような増幅器を電流増幅器とい
うのです。このとき,フォトダイオードの
電流の向きは出力電圧が正になるように接
続します。回路図では, R f = iMn を選
んでいますが,フォトダイオードの出力電
流が1// A 程度なので(もちろん光強度に
よる),1段目の電流増幅器の出力は IV 程
度ということになります。
1 MCI と並列に入っているコンデンサは
入力信号が急激に変化したときにある程度
貯め込んでから出力するためのもので,正
図2光センサー回路
確には積分回路といいますが,今回は入門
編ということで詳しい説明は省略すること
にします。
2段目は非反転増幅器そのものなので,
問題はないと思います力す, Ri が 10 kQ の固
定抵抗に対して, Rf は 100 k の可変抵抗
にしてあります。倍率は ( 1 + R f / Ri )
で与えられますから,可変抵抗を調整する
ことによって,1倍から11倍まで変えるこ
とができるようになっています。これは,
だいたい1段目の出力が IV であることか
ら, 2段目の出力 ( A / D コンバータの入
力)を5 V に設定するためにあと5倍程度
の増幅器が必要なのですが,使用する条件
によって光の強度が変わることを予想して,
倍率を変化させられるように便宜を図った
のです。
LM 358 と各種オペアンプについて
以上でひと通りオペアンプの使い方を実
際の回路例も含めて説明しました力%使っ
ている部品の仕様については何も述べませ
んでした。オペアンプと一口にいっても極
めてたくさんの型番があり,いざ部品を選
ぶにあたって迷ってしまうこともあるくら
いです。いずれは皆さんが自分で回路設計
することもあると思いますので,代表的な
個々のオペアンプについて,部品の選び方
を説明してぉきます。
1) 汎用オペアンプ
特別な回路でない限り,まず最初に候補
に挙がるのが741シリーズと呼ばれるもの
です。上で述べた,反転 • 非反転増幅器の
使い方をする限りこの741で十分です。た
だし,最近この741は廃品種になった模様
で,その代わりに4558シリーズが最もポピ
ュ ラーなオペアンプになって います。しか
し,いくら汎用オペアンプといってもこの
741(4558) は万能ではありません。特に以
下に述べる点で注意が必要なときはより進
んだオペアンプを使用します。
2) 単電源オペアンプ
今回のフォトダイオードの増幅回路でこ
の741タイプを使用しなかった最大の理由
は,741が ±12 V の電源を必要とする点で
す。ハ。ソ コンでは TTL + 5 V のみの電源が
都合がよいのです。では,741を無理に単
電源で動作させたらどうなるかというと,
まったく使いものにならないといってもよ
いぐらいです。
そこで, +5 V だけでも使える専用オペ
アンプが必要になります。今回使用した L
M 358 はその単電源オペアンプの代表です。
あるいは LM 324 のほうがポピュラーとも
いえるでしようが, LM 358 と LM 324 の違い
は,同等なオペアンプが2個入りか4個入
りかの違いだけです。また,1回路当たり
の性能は741と同等と考えてかまいません。
3) FET 入カオペアンプ
オペアンプを微弱信号の増幅に使用した
ときに問題になるの力 ? ,オペアンプの理想
特性(理想特性については囲み記事参照)
からのずれです。特に,フォトダイオード
のような電流信号出力のセンサーを使う場
合,オペアンプの入力端子に流れ込む「バ
イアス電流」というものの大きさが問題に
なります。 FE 丁入カオペアンプは一のバ
イアス電流を小さくし,微弱電流の増幅に
特に高性能を示すものです。代表的なのは
LF 356 です。
このような事情を考えると,今回の光セ
ンサーの増幅回路には本来はこの FETA
カオペアンプを使用すべきです。しかし,
今回はあまり微小な光強度での精度は必要
としないことと, LF 356 も正負両方の電源
が必要なので,単電源 FET 入カオペアン
プを選ぶとかなり特殊になってしまうこと
から,目をつぶりました。
4) 高精度オペアンプ
144 Oh! X 1991.2.
オペアンプの理想特性からのずれとして
次に挙げられるのが,「オフセット電圧」と
呼ばれるもので,これはオペアンプの+入
力端子と一入力端子との電位差のことをい
います。理想特性ではこの電位差は0と置
いています。問題は,このオフセット電圧
が時間的に変動(ドリフト)したときで,
そうなると増幅器の倍率も揺らいでしまい
精度ががた落ちということになってしまい
ます。高精度オペアンプ OP 07 はオフセッ
卜電圧のドリフトが小さく,またノイズに
も強くて,実に幅広く用いられている高精
度オペアンプです。
5) 高速オペアンプ
最後の問題点は,オペアンプの周波数特
性です。オーディオ信号のように時間的に
変動する信号を増幅する場合に,オペアン
プの反応が追いつくかどうかというのはか
なり問題になる点です。あまりに変動が速
すぎるとオペアンプの増幅が追いつかなく
なり,入力した信号に比例する出力が得ら
れなくなります。特にオーディオ用の増幅
器の場合には,音が歪むので使いものにな
りません。
たとえば741シリーズを使って100倍の倍
率を取る場合,歪みを1%に抑さえるため
には入力を lkHz = 1000 Hz にしなければ
いけません。オーケストラの楽曲は10〜20
kHz は出ているので,せっかくの名曲も台
なしです。このような場合には,専用の高
速オペアンプを使うしかありません。今で
はオーディオ用オペアンプという名で多数
開発されていて,それらは 100 kHz 程度ま
で倍率の変動が十分抑えられているほか,
倍率の変動には現れなくても音の響き具合
に影響のある位相歪みというものに対して
も満足の性能が出るようになっています。
アナロク回路もだいじよーヴイ!
Oh ! X 誌上で私の知る限り初めてのアナ
ログ回路入門ということで,ハードウェア
工作入門としては少し余計なくらいまで説
明してみました。「デジタル回路だけでも全
然理解できないのにさらに難しかった」と
いう感想を持つ読者も多いかもしれません
が,何も苦手意識を持つ必要はありません。
デジタル回路もアナログ回路も入門のうち
は,市販の 1 C をどう組み合わせてつなぐ
か,というパズルにすぎないのです0
ハードウェアの理解には皆さんが B ASI
C や C の文法を覚える以上に難しいことは
何もなく,大切なのは,まず苦手意識を忘
れること。その次は,目的の回路に使われ
ている主要な 1 C の役割をたとえチンプン
カンプンでもいいから,数多く眺めてみる
ことです。 1 C の規格表や,回路の実例集
などをぱらばらとめくっているうちに似た
ような 1 C の使い方に何度か出会い,知ら
ず知らずのうちに回路の組み方がわかって
くるものなのです。
それでは,来月からまた改めてハードウ
ヱアエ作実習に一緒にチャレンジしようで
はありませんか。
オペアンプの理想特性
オペアンプをよほど専門的に使わない限りは
次に述べる理想特性というものを理解しておけ
ばほぼどんな回路にでも対応できます。
その前に,オームの法則について復習してお
きましょう(図3)。オームの法則というのは,
抵抗 R の両端に電圧 V をかけたときにその抵抗
に流れる電流丨についての関係が,
V = I • R
となる法則です。抵抗 R , と R 2 が直列になって
いるとき,全体の抵抗 R は R = R !+ R 2 になる
ので,電流丨は,
I = V / ( R !+ R 2 )
になります。またその場合に , Ru R 2 それぞ
れの両端の電圧はやはりオームの法則にしたが
い,
V ,= I R t = VR " ( R !+ R 2 )
V 2 = I R ,= VR 2 / ( R ,+ R 2 )
となります。これはちょうど全体の電圧 V を
卜: R 2 に内分した値になっていて,簡易ジョ
イスティックのところで説明した電圧入力の求
め方と同じです。そして,オームの法則の成り
立つ抵抗の両端で,電流の流れる方向に沿って
電位は高いという約束になっています。
では,オームの法則が頭に入ったところで,
オペアンプの本質ともいえる理想特性の説明に
入りましょう。オペアンプの記号は図丨のよう
な三角形で,一入力と+入力と出力の3端子を
持っています。このオペアンプの一入力の電位
を E _, +入力の電位を E + とおきます。
さて,通常のオペアンプの使い方は,出力端
子から抵抗を通して一入力につないであり,こ
れを負帰還といいます。図丨の反転増幅器,非
反転増幅器どちらも負帰還がかかっているのが
わかるでしょう。負帰還がかかっているときの
オペアンプの理想特性というのは,
•E + =E_
籲一入力,+入力ともに電流は流れ込まない
•出力電流はいくらでも流せる
以上の3つを考えます。
この理想特性を反転,非反転増幅器それぞれの
場合に適用させてみます。
1) 反転増幅器
図丨 - 丨を見てください。
• まず+入力端子が G N D に落ちているので,
E + = 〇
• 理想特性より,
E + = E _= 0
• 出力端子から R f に流れる電流を丨とおくと
オームの法則より
Eo - E _ = E 0 = I R f
• 一入力端子には電流は流れ込まないので,
Ri に流れる電流も丨だから,
E_-Ei = - Ei = I Ri
• I を消去して,
Eo =- ( Rf / Ri ) Ei
この式が本文中で示した倍率の式です。
2) 非反転増幅器
図 I - 2を見てください。
• まず+入力端子に入力電圧がそのままかかっ
ているので,
E + = Ei
• 理想特性より,
E + = E _ = E i
• 出力端子から R f に流れる電流を丨とおくと
オームの法則より,
Eo - E _ = Eo - Ei = I R f
• 一入力端子には電流は流れ込まないので,
Ri に流れる電流も丨だから,
E _ = E = I Ri
• I を消去して,
E 0 = ( I + R f / Ri ) Ei
この式が本文中で示した倍率の式です。
図3オームの法則
_ _ _ v [_ >
[基本形 I V=I*R 丁 1
V = i -( r , + r 2 )
f " 抵抗が直列に
[ なっているとき
ハードウヱアエ作入門 145
I
★(で)のショートプロば一てい
行け行けユーティリティ
Komura Satoshi
古村聡
今月の(で)のシヨートプ□ば一ていはツール 2 本立て。どちらも X68000 用で,
1 本目が英字の字間を詰めてくれる X-BASIC 用関数 「 D _ symbol ( L , 2 本目
が少し便利な機能つきの OPM ファイル演奏バッチファイル 「 olay . batj です。
illustration : T.Takahashi
あ、みなさまとっくに明けちゃいました
けどおめでとうございます。(で)でござい
ます。
TeX つてのがあるんですけどご存じで
に 2 M バイトになったばっかしなんだぞ。
ということで,そのような環境になるま
ではおあずけとなったのでした(しかし,
いつになる ことやら)。
リスト1が p _ symbol () で,リスト2力 ? p
symbol () を使ったサンプルプログラム 0
リスト1で打ったものを(たとえば,リス
卜1を打って psymbol . bas で save @ したの
すか?この TeX っていうのは大雑把に
いうと,ワープロの印刷部分だけ持ってき
て強化したようなもんで,テキストフアイ
ルに書体やら字の置き方 ( TeX のロゴみた
いな置き方ができるわけね)とかのデータ
を加えてこれに通してやるとあ一ら不思議,
プリンタからまるで印刷物のような美しい
文書が出てくるってなものなんです。
というわけで,実はついに永年あこがれ
ていた X 68000 用の TeX を手に入れたんで
すよ。うるうる,うれす L . 。で,うれ
しさついでに G ++ コンパイ ラもネットか
らダウンロード してきち やった。 こいつは
GNU 版の C + + モドキで,早い話, GCC の
親分みたいなもんなんですけどね。
しかし . , Tex って馬鹿でかいよ 一。
フロッピーデイスクにして8枚分 (10 M バ
イト近い)。 20 M バイトしかない私の ハード
デイ スク はもうどんなに詰めてもあと2,3
M バイトしか余らない。うう っ, どうや っ
てイ ンス トールしろつ ちゅうんじや。
しようがないから, G ++ で遊ぼうと思
ってドキュメントを読むと . ,なに,ま
ともに G + +を動かすには4 M バイトは
RAM が必要だと ( 2 M バイトでもぎりぎ
り動かないことはないらしいんだけど)。私
の マシンは この前, SX - WINDOW と 一緒
つ W てつ WT 3 ブ12モーシ3:/
ではでは,今月の1本目。今月の1本目
はちょっと便利な X - BASIC 用関数, p _
symbol () です。
p symbol( ) for X 68000
(X-BASIC)
富山県作田定之
プロポーシヨナル ピッチってご存じです
か?そそ,プリンタの コマンド (モード)
なんかにありますね。英語で文字を打ち出
すときに字と字の間を詰めてかっこよ〈見
せる,あの プロポーシヨナル ピッチです。
この p _ symbol () はそのプロポーシヨナ
ルピッチで英文字と記号(全部の記号とい
うわけじゃないんだけどね)をプロポーシ
ヨナルピッチでダラフイック画面に表示す
る関数なのです。
書式は簡単で,
p _ symbol ( pl , p 2 , p 3 , str , h , v , p 4 , p 5 , p 6)
となっています。引数にはそれぞれ int 型
(ただし, str だけは文字列型)で,
pi X 座標
p 2 Y 座標
p 3 文字間隔をドット単位で指定
str 表示する文字列
h 横倍率
v 縦倍率
p 4 モード 0 = 16 X 16 1 = 24 X 24
p 5 ノ 《 レツト•コード
p 6 表示=1 or 非表示=0
という内容を入れてください。
返り値は整数で表示した場合の横幅のド
ット数を int 型で返してきますので,うまく
p 6 を応用すればセンタリングなども簡単
にできるんじやないかと思います。
なら),
load ® ’’ psymbol . bas ”
renum 200
などとして, 200 行以降に関数を持ってきて
からリスト2を打ち込んでください0
おお, かっこええじゃあないですか。プ
ロポーシヨナル ピッチか,やりますねえ。
文字間を詰めるだけでこうもかっこよくな
るもんなのね,英文字ってのは。サンプル
の実行結果を見てるとほれぼれしちゃいま
すよ。グラフイック画面に LINE や CIRCLE
でよいしょとお絵描きして,こいつで文字
を画面に表示し,プリンタに打ち出せば
……,いま流行りのデスクトップパブリシ
ングだ(おおっ一)!
それは冗談としても,作者の作田さんが
んばりましたね。このプログラム,英文字
の字間を詰めてい〈わけですが,詰めるた
めにはやっぱり文字の大きさをプログラム
が知ってなきゃいけないわけですよね。て
ことは作田さん,文字の大きさを決めるた
めに1つひとつ試行錯誤して決めていった
んでしようか(それともなにか別の方
法?)。もし,そうだったらすごく手間ひま
かかったんじゃないかと思います。その努
力に金メダルあげましよう。めざせ TeX へ
の道だあっ!
おっと,そう:^。この関数はあくまで
SYMBOL 関数,グラフィック画面に描画
する関数ですからね,忘れてグラフィック
RAM に RAM ディスタなんか設定しちゃ
いけませんよ。それを忘れた私は……,せ
っかく RAM ディスタにセーブした原稿を
み一んなオシヤカにしちゃいました。これ,
実はいまあわてて書き直してる最中だった
りして。うお一っ,私の原稿を返せ一っ!
気をつけましようね。ぐつすし(そんなや
146 Oh! X 1991.2.
つはお前だけだって)。
LIVE in c/ 3 —h 7 l 2 (#—Ti'
さ一て,気を取り直して次いきましょう
か。今月の2本目はこのページでは初登場
の X 68000 用のバッチファイルによる作品,
「 play . bat 」 です。
play.bat for X 68000
(Human68k)
島根県東裕人
0 PM ファイル(ファイルの拡張子の3文
字が*. opm となっている音楽データファ
イルのあれのことですね)を演奏するため
のバッチファイルです0
このバッチファイルの実行には 「 play,
bat 」 本体とデータの 「 init.opm 」 がペァで
必要になります。で, 「 init.opm 」 はなく,
それを作成する BASIC プログラム 「ma
keinit.bas 」 (リスト 4) を実行する必要が
あります。
1) ed . x を立ち上げる
2) リスト3 「 play . bat 」 を打ち込む
3) [ ESC ], [ T ] でファイル名変更になる
ので “ play . bat ” と打つ
リスト i
4) デイスク上に play . bat ができる
5) BASIC を立ち上げる
6) リスト4 「 makeinit . basj を打ち込む
7) RUN
という手順で,間違いがなければディスク
上に init . opm が出来上がるはずです。
おっと,注意! 「 makeinit . bas 」 はシス
テムを立ち上げてまだなにも曲を鳴らして
いない状態(内蔵音色が壊されていない状
態)で,実行してくださいね!
このように準備にはちよっと手間取るか
もしれないけど,使い方は結構簡単です。
コマンドモードで,
A > play [OPM フアイル名/スイ ツチ]
とすれば OK です。これで指*定した OPM フ
ァイルを演奏してくれます。ファイルを指
定しない場合は,現在のトラックにあるデ
-夕で演奏するようになっています。
で,肝心のスイッチなのですが,以下の
ようなものがあります。
/i 初期化。 OPM ドライバの内蔵音色,
およびノイズジェネレータの初期化を行い
ます
/n ノイズジェネレータの初期化。ノイ
ズジェネレータの初期化のみの動作になっ
ています。曲も止まってしまうので,注意
して使うこと
/s 演奏の停止。ただし,停止するだけで
トラックの内容は壊しませんから play ( cr )
や play / c などで,また演奏を開始するこ
とができます
/c 演奏を停止したところから再開
/〇 nn 演奏中の曲のテンポの変更(ただし,
ファイルの中にテンポの指定があるとまた
元に戻ってしまう)。 nn は32から200の間で
指定してください0また,〇と nn の間にはス
ペースが 必要です
/? ヘルプ
実際に使うには,
play / i ファイル名
(音色を戻しておいてから,ファイルを演
ブ〇—ボーシヨ
ハ
/* 害式:
/»
t p6 )
/*
/*
func p_symbol(x , y
int i,j,k,l,p,s
int xpt
int X
str m$
dim int lp(1,104+20+21*2
+0
ル • ビッチ対応 symbol 関数
p_symbol(pi,p2 , p3 , atr$ , h , v , p4 , p5
戻 0 值 = 横幅
st$;str , h , v , mo , plcode , sw )
+ 1
+4
+ 3
+6
+ 0
+ 0
+ 1
+ 3
+ 0
+ 2
+ 5
+5
+ 10
+ 0
+0
6
10,2
+ 4
/*
dim int rp(
+0
+ 2
+ 5
+ 4
+ 7
+ 1
+ 1
♦1
+ 4
+0
+ 2
+4
+ 5
104+20+21*2
6
5
+11,14
+ 1
+ 1
+ 1
+ 4
/*
4
4
,2,13
3
4
5
17,6,3
3
4
10,2,3,2,6,3,9,
0,0
0,0
0,3
17,
0,0
0,1
/* 16x16
1% 12x24
11,2,3,2,6,3,9,4
0
2.1.3
4.2.4
6 , 2 ,
2 , 0,2
4,1,3
2, 7,5, 5, 2 , 1 , 2,1
1,2
str chkstr$[256]= "ABCDEFGHIJKLMNOPQRSTUV
W X Y Z ,,
chkatr$=chkatr$ + "abcdefghijklmnopqrstuv
chkstr$=chkstr$ + " 01234567 89 "
chkstr$=chkstr$ + " ! " # $ % & ' * + , - . : ; < = > ? @ ~
chkatr$ = chkstr$ + "ABCDEFOHI JKLMNOPQRSTlIVWXYZabcdfifghUklinnopqr
stuvwxyz"
chkstr$=chkstr$ + ”0123456789 ,,
chkstr$=chk8tr$ + "!"
chkstr$=chkstr$ + chr$(4H22)
chkatr$ = chkstr$ +
chkstr$=chkstr$ + chr$(&H2C)
chk8tr$=chkstr$ + H - . : ; <s>?@^ ' *'
/*
if mo=0 then xpt=16
if mo=l then xpt=24
X=x
for isl to len( st$ )
k=asc(roid$(Bt $ t i t l))
if (k>&HlF and k<&H80) or (k>&H9F and k<&HE0) then j=l:s=167:l
=83 else j=2 : 8=1 : 1=-1
m$=mid$ ( st$ , i •わ
p=instr(s,chkstr$ f m$)
p=(p¥j-l)Mp¥p)
if sw= 1 then symbol( x+z 窣 h-(lp<mo , p)}*h , y , m$ , h , v , mo+
1,plcode , 0 )
x=xf((xpt¥(3-j))+z-(rp(mo,p)+lp(mo f p)))*h
j¥2>
next
return(x-X)
endfunc
U スト 2
10 ft sample
20 ハ
30 screen 2,0,1,1
40 /本
50 str a$[80]=" Non Proportional
60 atr b$[ 80]=" Proportional Pitch Fonts
70 atr c$[80]=" Exciting Computer X 6 8 0 0
0
80 str d$[80]= M Human68K Version 2.02 1987 88 89 90 By SHARP.
90 str e$[80]="Proportional Pitch Fonts.
100 /*
110 palet(1,rgb(31,31,31))
120 symbol(0,50,a$,1,1,2,1,0)
130 p_symbol(0,100 t l,b$,1,1,1,1,1)
140 p_symbol(0,130,1,C$,1,1,1,1,1)
150 p_syrabol(0,200,l,d$,1,1,0,1,1)
160 p_aymbol(0,220,1,eS,1,1,1,1,1)
170 end
180 /*
190 /*
( で)のショートプロぱ一てぃ 147
: HELP
echo
echo
echo
echo
echo
echo
echo
echo
echo
: END
set $plf$=
break on
II スト 4
10 /* make "init.opm"
20 /拿 for play.bat
30 /拿
40 str filename = "init.opm"
50 int vmax = 68
60 int cl,c2, c3, fp
70 atr crlf, inidata[255]
80 dim char vdata{4,10)
90 crlf = chr$ (&HD) ->-chrS (&HA)
100 inidata = "(i)"+crlf+"(ml,10) M +crlf+ M (tl)yl5,0"+crlf+"(al,
1) ,, +crlf+" (p)"+crlf
110 /拿
120 fp = fopen(filename , "c")
130 fwrites(inidata, fp)
140 for cl=1 to vmax
150 m_vget(cl,vdata)
160 fwritesC (v ,, + atr$(cl) + ' , ,0," , fp)
170 for c2 = 0 to 4
180 for c3 = 0 to10
190 fwrites(str$(vdata(c2,c3fp)
200 next
210 next
220 fseek(fp,-1,1)
230 fwritesr)"+chr$(&HD)+chr$(4HA), fp)
240 next
250 fclose(fp)
260 end
copy XtempXJopmcmd.S$$ opm > nul
del Xtemp%$opmcmd.$$$ > nul
set $plf$=TRUE
goto LOOP
: TEMPO
echo < < テンポを変更します >>
echo (oX2) > XtempXJopmcmd.$$$
copy Xtemp%$opmcmd.S$$ opm > nul
del XtempX$opmcrod.$$$ > nul
set $plf$=TRUE
shift
goto LOOP
:INIT
copy c:¥batch¥init.opm opm > nul
echo < < OPM ドライバを初期化しました > >
set $plf$=FALSE
goto LOOP
: NOISE
echo (i)(ml,10)(tl)yl5,0(al,l)(p)(i) > %temp%$opracmd.$$$
copy %temp%$opmcmd.$)$ opm > nul
del Xtemp%$opmcmd.$$$ > nul
echo < < ノイズジェネレータを初期化しました > >
set $plf$=FALSE
goto LOOP
echo off
break kill
set $plf$=FALSE
if ..%1”==
goto SKIP
: LOOP
if "%2 "==
shift
: SKIP
goto PLAYN
"XI"
"Xl"
"% 1 ..
..XI..
..XI"
"XI”
"XI"
.•XI"
..XI"
"XI"
"%l"
Vp
"/P
"/a
,./S
"/c
•VC
"/?
•,/n
"/N
■Vo
'70
goto PLAYN
goto PLAYN
goto STOP
goto STOP
goto CONT
goto CONT
goto HELP
goto NOISE
goto NOISE
goto TEMPO
goto TEMPO
if X$plf$% == FALSE goto PLAY
echo (w) > %temp%$opmcmd.$$$
copy XtempXSopmcmd.$ $ $ opm > nul
del %tempX$opmcmd.$$$ > nul
,, /i.. goto INIT
if "XI"==.71"
: PLAY
if ,, %r ,
goto INIT
if exist XI goto PLAY1
if exist %1.opm goto PLAY2
if exist XmusicXXl goto PLAY3
if exist XmusicXXl.opm goto PLAY4
echo < < ファイルがありません >>
goto LOOP
echo < < XI を演奏します >>
copy %1 opm > nul
goto PLAYE
: PLAY2
echo < < %1. opm を浪赛します >>
copy XI.opm opm > nul
goto PLAYE
: PLAY3
echo < < XI を演赛します >>
copy XrousicXXl opm > nul
goto PLAYE
: PLAY4
echo < < XI. opm を演奏します >>
copy XmusicX%l.opm opm > nul
: PLAYE
set $plf$=TRUE
goto LOOP
: PLAYN
echo < < 演奏を開始します >>
echo (p) > Xtemp%$opmcmd.$$$
copy XtempXIopmcmd.S$S opm > nul
del XtempXJopmcmd.$$$ > nul
set $plf$=TRUE
tfoto LOOP
: STOP
echo < < 漬赛を停止します >>
echo (s) > Xtemp%$opmcmd.$ $ $
copy XtempXSopmcmd. $ S $ opm > nul
del XtempXSopmcmd.$$$ > nul
set $plf$=FALSE
goto LOOP
: CONT
echo < < 演奏を再開します > >
echo (c) > XtempXJopmcnd.J$S
奏する)
と力、,連続して演奏したいときには,
play ファイル名ファイル名 .
(ただし,曲が無限ループのものだったり
すると止まらなくなるので注意!そのと
きはブレイクキーで止めてね)
なんていうふうに使います。もちろん,普
通に1曲だけ聞きたいなんていうときには
シンプルに,
play ファイル名
で, 0 K です。そうそう Human 68 k ver .1.0
ではバッチのためのメモリが足りなくなり,
バッチエリァサイズを拡大 ( COMMAND /
B : 8などと)しなければ動かないので注
意してくださいね。
U スト3
© 貝 K だつで^ブ R 7 今 SC /7!
おお,そうだ。このプログラムでは,
play ファイル名
とすると, 0 PM ファイルをカレントデイレ
クトリに探しにいきますが,そこに指 1 定し
た 0 PM ファイルがないときには, “ music ”
という環境変数に入っているデイレクトリ
から探してきます。環境変数がどんなもの
かは マニュアルを 見てもらうとして,とり
あえず,たとえば 0 PM ファイルを入れてい
るデイレクトリが“ opmfiles ” というデイレ
クトリ名であれば,
set music = a:¥oprrmles
というふうに設定することができます。
“ autoexec . bat ” にでも入れとくと便利で
しょぅ。
なになに? 投稿原稿によれば, 「0 h !
X 10 月号113ページを見てこれならもっと
便利なバッチファイルがうちにあるぞい。
と思い,投稿することにしました。内容か
らいっても,これは「シヨートプロ 一て
い」宛に投稿するのが妥当だと思いますの
で,古村さん,煮るなり焼くなりしてくだ
さい」とのこと。じゃ,私はライターであ
るから焼いてみようか?(こらこら)
さて,この 「play . batj はこのページ初の
バッチファイルになるわけです。私はどん
な言語でも受け付ける!と言ったし,サ
る
す
赛
演
を
る0)容
化す20内
期赛 < の
::初演 nnr
ザ化のを <フ
期一容 32 ッ
U 初夕内 < パ
/^の一の るの
S /バレクるるす在
1ィネッすす®現
Y; ラエラ止 M 変は
ドジト停再を時
7TM ズのををボい
[7P ィ在赛赛ンな
01TO ノ現演演テし
定
n 指
e : n b
V 良 4
w-inpsco^
y 用////// f
pla 使
11
148 Oh! X 1991.2.
イズも100行ちょっとの大きさであります
から,もちろんショートプロの範囲内。ば
っちり OK のプログラムであります。
UNIX なんかではこういうバッチフアイ
ルみたいなものがシェルプログラミングと
かいって結構盛んなジャンルなんですよね。
たとえば, C シェルなんてのはその名のと
おり C もビックリというようなすごいシェ
ルスクリブトの文法になっているんです。
だから,ガンガンこういうのも送ってきて
くださいね。
いま思い出したんだけど,先月に続いて
今月も XI のプログラムがなかったなあ。み
んな XI のプログラムもどんどん送ってき
てくれい。そんなこんなでまた来月。
(で)のば一てい八ンズ第2部—— (その 3)
前回はえっと,ぱらぱらばら……,そうか自
分の視界の話をしたんでしたね。そういうこと
です,はい(いきあたりばったり )0 とりあえず
今月は前回の解説の続きです。プログラムリス
卜も先月号に出てしまってますから,先月号を
用意してくださいね。
前回は視界を決めてそのための配列を用意し
たんですよね。ところがどっこい,視界がある
からといってその範囲のものがなんでも見える
わけじゃない。え,なぜかって? そりゃね,
たとえば目の前にかわいい女の子が立ってると
しますでしょ。で,普通は洋服があるから,そ
の先は透けて見えたりしないわけだ。透けて見
えちゃったら困るでしょ。でへへ。
……まあ,変な説明ですけど,つまりは手前
にものがあるときはその奥のものが見えてしま
ってはいけないわけです。というわけですので
今月はその部分,視界がじゃまものに遮られて
いるかどうかのアルゴリズム,いきます。
|私はぬりかべっ!
ある壁がほかの壁を遮っちゃう,というとそ
う,中央の壁が目の前にで一んと立ちはだかっ
ているときなんてのがありますね。私はぬりか
ベ!つまり中央の配列で手前側に壁があると
その後ろにいくら壁があっても見えないんです
ね。それは中央だけではなくて左右の配列もそ
うですね。
配列でいうと(憶えてますよね,先月の配列)
5番に壁があったら2番や 1 1番に壁があっても
描く必要がないわけです。うむ簡単簡単。
しかし,後ろにある壁が遮られるのはそれだ
けじゃあない。たとえば,図丨のように見えた
としましょう。
左側の壁でこちらを向いている壁があります
よね。こいつが見えなくなるときがあるでしょ,
中央の壁がないときでも。そうです。図2のよ
うに「もうひとつ手前の左手に壁があるとき」
図I
ですよね。
つまり「奥の壁のこちらを向いている面は,
その前の側面に壁があるときは見えない」わけ
です。右側でも同じ。
「左右の壁では手前側に続いて壁があるかな
いかで,奥側の壁の手前に向かった面を描くか
どうかが変わる」ということになるわけです。
配列でいうと丨番の配列には壁がなくて,2番
にもなければ何も描かなくていいけど,もしあ
ったらその部分を描いてやらなくてはいけない
わけです。
アルゴリズムは漬物
この2つのことを考えながらプログラムの流
れ,アルゴリズムを作っていきます。え一っと,
まず,中央に壁がある場合だから中央のどこに
壁があるかを調べるんだよね。
え一っと,まず
|)中央の壁を(配列でいうと4〜 7) 壁があ
るところを探す
2) 中央の壁を描く (このとき深さがいくつだ
ったかを記憶しておく)
ということをします。
で,左右の壁だよね。まず,左を見ていくこ
とにしますが,さっき中央の壁を見たから,さ
っき壁のあった丨個手前まで(図Iと図2を考
えたら,配列で7のところに壁があるなら,お
隣のところに壁があっても関係ないでしょ。だ
からその前までしか調べないのだ)調べればい
いわけね。
3) さっき壁のあった左隣の配列の丨つ手前ま
で調べる
で,さっきのその前の壁を描くか描かないか
を調べる。ま,ここは if で場合分けするのが無難
かな?
4) もし,壁があったらそれを表示。壁がなく
てその前にあったら,前の壁のこちらに向いて
いる面(縦に長いあれね)を表示する
図2
……当然,前にもなかったらなにも描かない
5) 以上を繰り返す
でいいかな?うむうむ,よさそうだ。じや右
側の壁は,
6) 左に同じ
でいいわけだ。よかったよかった。
アルゴリズムを作るときにしっかり考えて作
っておくとプログラムを組むときに楽ですし,
逆にいい加減にやっちやってこの段階でバグが
でると致命的ですんで,しっかりこの段階でブ
ログラムを組むときのことまで考えてやりまし
ょうね。ゆっくり時間をかけて。ただし,忘れ
てしまわない程度に時間をかけて,だけど。
|やっとプログラム
という方針で,できたのが先月のリストなわ
けですね。
ループを組むときに for ループではなくて
while ルーブを組んでいるところがあります。こ
れはなんでかっていうと, for ループというもの
は条件がおかしくても必ず丨度は通ってしまう
ものと思い込んでいたからなのです。そして,
自分が「石の中にいる j ときは左右は関係ない=
つまリ左右を調べてはいけないということがあ
るから, for ループではだめ,と思ってしまった
のです。いやあ,失敗失敗。
おおそうだ。すっかり忘れていた。中央左右
について壁の遠さを入れるとその絵を描いてく
れるサブルーチンを作りました。せっかく絵の
パターンを作ったんだから,エレガントに呼び
出そうと思ったわけですね,はい。う一ん,に
しては CASE 文でだらだら害いちやったら,なん
か長くなっちやったなあ。う一ん,もうちょい
検討の余地があったかな?
しかし,ま,なんとかプログラムが形になっ
てきたでしょ。
とりあえず,この時点でやっと配列に0かI
か2を入れて run するといろいろ描いてくれる
ところまでできました。なんとなくダンジョン
ぽくなったでしょ。確認のためにもいろいろ配
列に数値を入れて遊んでみてくださいね(先月
の時点でやっちやったかな?)。
えっと,来月はダンジョンのマップを 20X20
の大きさで作って,再来月はおまけの処理をち
ょっとつけて……。げ,やっぱり6回の予定だ
ったのに丨回足りない . 。こいつはまいった,
どうにかしなきやだわ。
まあ,とにかくそういうことでまた来月。て
やつ!(と頭をネ包えて去る)
(で)のショートプロば一てぃ 149
1 ) お送りいただくプログラムには,住所,氏名,年齢,職業,連
絡先電話番号,機種名,使用言語,動作に必要な周辺機器,マイコ
ン歴などを明記のうえ,封書の宛先の最後には 「 Oh!X LIVE 」, 「全
機種共通システム」,「投稿ゲームブログラム」など,ブログラムの
内容を明確にご記入ください。
2) 投稿されるプログラムには詳しい内容を記入した原稿と一緒に
変数表,メモリマップ,参考文献などもお害き添えのうえお送りく
ださい。また,お送りいただいた原稿については,当方で加筆修正
をさせていただくことがあります。
3) お送りいただくブログラムは最低2回はセーブしておいてくだ
さい。基本的に同封されたフロッピーディスク,カセットテープ,
クイックディスクなどについてはご返送いたしませんので,あらか
じめご了承ください。
4) ハード製作関係の投稿につきましては,最初は内容のわかる原
稿のみお送りいただければ結構です。その後,当方で製作物が必要
だと判断した場合には改めて連絡いたします。
5) お送りいただいた作品の採用につきましては,掲載号が決定し
た時点で当方より連絡いたします。特にツール関係,ハード関係な
どのものにつきましては特集内容などを考慮したうえで採用決定さ
れますので,結果を連絡するまでにかなり時間がかかる場合があり
ます。
6) 投稿いただいたブログラムにバグなどが発見された場合は新し
いプログラムの入ったメディアと一緒に文害にてご連絡ください。
7) 掲載されたプログラムに対しては当社規定の原稿料をお支払い
いたします。また,投稿されたプログラムの著作権などは制作者に保
留されますが, PDS などとしてネットにアップロードされる場合は
必ず事前に編集部までご連絡ください。なお,一般的モラルとして,
他誌との二重投稿または他誌に掲載されたプログラムの移植などに
ついては固くお断りいたします。
宛先
〒108東京都港区高輪 2-19-13 NS 高輪ビル
ソフトバンク株式会社 Oh ! X 編集室「投稿プログラム」係
投稿プログラム大募集
のお知らせ
•あなたはどのようにしてプログラムに出会いましたか7
記号の羅列にすぎなかったプログラムリストが突然意味を持った
メッセージ として読み取れる,機に「プログラム」というも
のについてなにか納得できるようになる . 。きっかけは雑誌のぺ
ージの隅に載った小さな小さなプログラムだったのかもしれません。
またはいくら見直してもエラーの出てくる長い BASIC プログラムかも
しれません。きっとそのプログラムにある「なにか」に魅かれてリ
ストを打ち込んだことがあると思います。
あるソフトを使っていて,なにかの記事を読んでいて,または突
然に,「こんなソフトがあったらいいな」と思う。こういった小さ
な動機からプログラムは生まれてきます。あなたのアイデアを埋も
れさせないでください。私たちはそこにある「なにか」を求めてい
ます。完成度の高いありふれたブログラムよりも,粗削りでもオリ
ジナリティの光るプログラムのほうが,さらに誰かの「プログラ
厶」を生むことになるはずです。
Oh ! X には毎月さまざまな投稿プログラムが揭載されています。こ
れらのブログラムは,すべて読者の皆さんが日頃のパーソナルコシ
ピューティングのなかで作り上げてきたものです。あなたも投稿プ
ログラムを通じて Oh ! X の誌面作りに參加しませんか?
•大作歓迎 I
Oh ! X では過去に40 K バイト程度のプログラムまで誌上に掲載した
実績があります。また,どうしても誌面に載り切らない作品は付録
ディスクに収録して配布したこともありました。どうせ誌面には掲
載できないからと諦めている方,とりあえずご連絡ください。
X 68000 用 XROTO . X
全機種共通システム用 BILLIARDS
X 68000 用力ードゲーム TEN
MZ -700 用 _ rth
X 68000 用ハンディイメージスキャナアダプタの製作
投稿募集要項
150 Oh ! X 1991.2.
SX-WINDOW
ブロクラミンク
吉沢正敏♦著
巳5判変型予価3200円(税込み)
X 68000 にイベントドリブン方式のマルチタスク • ウインドウ環境を提供する SX-WINDOW
は, X 68000 に新たな世界を拓くものとして熱い期待を集めている0本書は,この SX-WINDOW
上でプログラムを作ってみたいと思っているユーザーを対象にした,プログラム作成のための
ガイドブックである。イベントドリブン,リソースなどのウインドウ•プログラムの基礎知識,
サンプルブログラムによる具体例,ウインドウ関連のシステムコールー覧など, SX-WINDOW
上でプログラミングする際のエッセンスを集めている。
151
’91年1月刊行予定
7スタイルの
入門が:
憑卜
プレゼントの応募方法
とじ込みのアンケートはがきの該当項目をす
ベてご記入のうえ,希望するプレゼント番号
をはがき右下のスペースにひとつ記入してお
申し込みください。締め切りは1991年2月18
日の到着分までとします。当選者の発表は
X 680 M 用 5"2 H □版2枚組
9, 7 〇0円(税別) 3名
ファン待望の超厶ズシューテイングゲーム。ゲーセ
ンでお金を注ぎこんだ人もかなりいるはず。もちろ
ん移植の出来は期待どおり。シューティングフアン
必携の1作だ。
アイレム 006(535)4880
イメージフアイト
1991年4月号で行います。
ポーステック S 03 (3708)4711
ボピュラス
プロミ:ストランド
綱難
伝説 II
システムソフト Q 092 (752) 5262
大戦略卓上カレンター
お馴染みイースのキャラクターテレホンカ
ード。大事にとっておくもよし,見せびら
かしながら使ろもよし,定期入れにしのば
せてプロマイド代わりにするもよしのテレ
力だ。
X 6 M 00 用
5"2 H □版4枚組
9,800円(税別)
3名
ご存じ「銀河英雄伝説 j の続編。システムもさらに
パワーアップされ,シミュレーションに慣れていな
い人でも手軽に遊べる。全自動モードや MIDI 対応
もうれしいかぎりだ。
XBMffl ] 用 5"2 H □版
moo 円 ( 税別) 3名
すでに持っている入も多いかもし
れないけど,このプロミストラン
ドは,ただのブロミストランドで
はなあい丨なんとあのピータ
_ • モリニュー氏のサイン入りな
のだ。つてことで3名の方に。
日本ファルコム Q 0425(27)6501
ースの
テレホンカード
大戦略シリーズに登場する戦車や戦闘機の
PHOT □がプリントされた,システムソフトオリ
ジナルの】991年度カレンダー。これを見るたびに大
12月号プレゼント当選者
國 シースルー クロック(新潟県)金原真也(福岡県)升井晋也哲クリスタルポルシェ(長野県)
宮尾勇(新潟県)前田育男0ジッポ•ライター(福島県)佐藤明広(千藤県)正木崇摁(神奈川
県)多田早利遠藤幹文(奈良県)山下日出夫0キーホルダー(東京都)鈴木善統(神奈川県)
鈴木康之(大阪府)土器彰信友広一郎伊藤一成回ネクタイピン(岩手県)今井純二(静岡県)
玉宮央善(大阪府)二宮善弘(香川県)氏家啓(福岡県)古川智雄回ポーチ(北海道)鈴木賢吾
(長野県)中沢純 H ボストンバッグ(東京都)内田大輔(愛知県)高橋大介 0 XBAStoCCHECKER
(京都府)岩成英一 0 C compiler PRO -68 K (広島県)森崎剛 D 3 CANVAS PRO -68 K (東京都)宮
島誠 ffl 熱血高校ドッジボール部サッカー編(埼玉県)山賀巌太郎(静岡県)遠藤慎弥(沖縄県)
大城久
以上の方々が当選されました。おめでとうございます。商品は順次発送いたしますが,入荷状況
などにより遅れる場合もあります。また,公正取引委員会の告示により,このプレゼントに当選され
た方は,この号の他の懸赏には当選できない場合がありますのでご了承ください。
戦略をプレイしたくなる7
(価格はすべて消費税別です)
152 Oh! X 1991.2.
♦X-OVER NIGHT
[第 9 話]
(クロスオーバーナイト)
街の空気
TAKAHARA HIDEKI
咼原秀己
この年末年始に海外に出かけた人は,昨
年よりも10%ほど増えて45万人以上に及ん
だそうだ。昨年は海外旅行に出かけた人が
初めて1年間に1000万人を超えたとか。海
外旅行ブームの拡大を象徴している。
特にこの年末年始の場合,休みが散らば
っていたのでうまく有給休暇や代休を組み
合わせたりすれば,対象期間が12月22日か
ら1月6日までと実に16日間に及ぶ,従来
にないロングな冬休みになった。もちろん
16日続けて休めるなんて人はそうそういな
いが,昨年末か今年始めのどちらか一方は
続けて休みが取れる,ということはある。
年末年始は狂ったように同じ期間にみん
なが旅行に出かけるものだが,今回はその
せいか,やや集中回避。12月22日にオース
トラリア1週間の旅に出かけて新年は自宅
だと力%年が明けてすぐに成田に向かい,
香港4日間の旅行に出かけたとか,従来と
は違ったパターンの海外旅行を楽しんだ人
もけっこういたそうだ。
なにしろ政府をあげての長期休暇奨励と
いう奇妙なご時勢。いままでほど必死にな
って働いてはいけないそうなのである。た
とえば「丸の内の不夜城 j といわれる,コ
ンピュータ業界で有名な某社。仕事は3年
以上先の分までたまっているらしいのだが,
世間体があるのを気にしてか,深夜残業や
休 n 出勤は極力しないように,との通達が
出されている。
この会社に限らず全般的な話だが,無趣
味で出不精な人が突然,長期休暇などを手
にしては,逆に困るのである。することが
まずない。
そんな人にとっても問題なく効果的に時
間を使えるのが旅行だ,という解説を聞い
たことがある。確かにそのとおりだろう。
もっとも日本人は元来,旅行好きだとい
う説もある0とにかく映画,テレビ放送,
出版を問わず,トラベルものなら当たりや
すい!:いわれているのは常識。昨年30年間
続いて幕を閉じ話題となった「兼高かおる
世界の旅 j もそうだが,「新世界紀行 j にし
ても「世界ふしぎ発見」にしても,この種
の番組の人気の高さがわかる。
もうひとつの人気ネタ,ミステリーとド
ッキングすると,ヒットする確率はさらに
高まる0出版界では「トラベルミステリー」
などと呼ばれており,西村京太郎氏から内
田康夫氏まで作家側もはっきりと意識して
作品を量産している。
こうした作品が2時間ドラマになると,
「中国殺人行脚萩〜広島〜姫路,花の中
年奥3人組が次々と遭遇する女子大生温
泉連続殺人事件旅先でまき起こる恐怖の
……」といったやたら長い題名のドラマに
化ける。 バカバカしい 感じはするのだが,
知らず知らずのうちに見終わっていること
があるから,人のことは笑えない。
お正月映画として今年も「男はつらいよ」
シ リーズが上映されている力 ? ,トレン デイ
な洋画に劣らず人気があるのは,寅さんも
やはりトラベルものの典型だから力、
◊
そのお正月映画。
「ディック,トレ イシ —」,「卜ー タル*
リコール」,「ロッキー 5」, 「ネバー エンデ
イング ストーリー第2章」となかなか 豪華
な布陣が揃っている。「ネ バー エン デイ ング
ストーリー第2章」を除けば,昨年夏の米
国興行街を賑わせた作品がズ ラリ と揃って
いる。 ここに「バック.トウ •ザ -フュー
チヤ ー Part 3」 や 「アラ クノフ オビア」,
「ゴースト」 が加わっていたのだから,昨
年夏の米国映画市場が大混戦の デッ ド ヒー
卜 になったのは無理ないところ。
レースを制した伏兵中の伏兵「ゴースト」
は我が国ではひと足早く秋に公開ずみ。確
かに快作だったが,米国じせよ日本にせよ,
よくあれだけ動員できたものだといまだに
感心する。
昨年夏の米国公開映画の中で最も期侍し
ていたのが,ウォーレン•ビーテイ監督兼
主演の「デイ ック • トレイ シー」。「ゴース
卜」に食われはしたものの,あれだけの強
棻揃いの時期に上位をキープしていた(最
終的には「トータル*リコール」に次ぎ3
位)のだから,ヒットしたことは間違いない。
で,見た感想なのだが,それほどではな
かった。というか期待外れだった。
見終わったあと,「バットマン」と類似し
た感想を抱いてしまった。双方とも舞台と
なっているのは架空の暗黒街で,街を支配
する悪党一味と戦う正義の味方,という物
語。禁酒法時代の頃であろうか,おそらく
同じ頃の米国暗黒街をモデルにしているよ
ぅだ。
この街の模様が両作とも実に似ていた。
おまけに主人公が活躍するのがほとんど夜
で,ライティングまで同じタッチときては
感想が似てくるのはしかたないかも。
とにかくこの街の舞台作りや演出がしっ
くりこず,印象をかなり左右された。この
種の米国人の論評は見たことがないためな
んともいえないが,もしも米国人には自然
な感じだとすれば,「街の空気」に対する文
化的な日米の違いがあるのだろう。
街の空気,つまり街並みから雰囲気,さ
らに生活する人々の息づかいまで含めてそ
う書いた力 5 ',この違いは重要だ。今まで一
度も行ったことがないはずの場所に親しみ
を感じる場合,まず似た空気の場所に行っ
たことがあるはずだという。日本人が日本
中,どこに行ってもさほど違和感を感じな
いのはそのせいで,逆に欧州の人が住む国
を変えてもさほど気にしないのはそのせい
だろうか。
ここに時代考証が加わってくると,もう
どうしようもない。時代劇は論外にしても
たとえば日本の大正浪漫の街並みを米国人
に見せてもしっくりこないはず。ちようど
「デイツク • トレイ シー」 や 「バツ ト マン」
はその逆だったのだろう力、
もっともこうした理由で映画の印象を左
右されるようでは,本来はまずい。そう思
って 「ディック*トレイシー」を回想す る
のだが,マドンナが妙にハマっていた以外
は,どうも印象が弱い。ということは……。
「ディック.トレイシー」以外のお正月
映画はまだ1本も見ていない。忙しくて試
写状を手に入れる工作をすっかり忘れてい
たこと力す,ここにきてたたっている。
ぼくの場合,常設映画評コーナーを持っ
ているわけではないので請求しないと映画
会社は試写状をくれないのだ。
X-OVER NIGHT 153
第 45 回知能機械概論 お茶目な計算機たち
感涙もののマシン語プログラム
L マシン語に興味をもつ少数派/
パソコンが一家に 1台,さらにひとりに
1台というまでに普及してくるにつれて,
パソコンの 動作原理 その ものに興味を 持つ
人は 全体に対する割合としては徐々に少な
くなってくると思われます。 「パソコンの ア
ーキテクチャなどはどうでもいい,それを
どのように使うかが問題である」という思
想 こ そが ハ。ソコンを もっともっと多くの人
に普及させるためには必要なのですから,
パコソンの メカ その も のに 興味をもつ 人が
多くならないのはしかたのないことかもし
れません。
そのような思想を全世界に普及させよう
としている旗手,その人がスティーブ=ジ
ョブスであります。彼については先月紹介
しました。でも逆に,そういう思想が普及
してくる時代になればなるほど,アーキテ
クチャやマシン語など,ブラックボックス
をブラックボックスとしてはいられないよ
うな姿勢の重要性が増してくると思われま
す。
今回の記事は,特に本誌の’90年7月の特
集「マシン語への第一歩」をがむしゃらに
読んだようなタイプの人たちのために書き
たいと思います。
L コンパィラ自動作成の夢7
ソフトウエア危機ということが大声で叫
ばれるようになってもうずいぶんと時間が
経過しているわけですが,一向にその危機
はきていないようにも思われます。という
のは間違いで,実際には(特に日本では)
ソフトウヱアの技術者が膨大に不足してい
るのです。
新しいマイクロプロセッサチップを完成
させるまでの期間はずいぶんと短くなって
きました力 ? ,よいコンパイラはなかなか出
来上がりません。コンパイラの研究で自動
的にコンパイラを作成するというアプロー
チはひと頃はずいぶんと流行りました。要
するに,対象とする言語の記述(どういう
構文を持ち,それぞれの構文でどういう処
理をし,データタイプは何があるなどとい
うことを表現したデータ),それから実行す
るプロセッサの記述(どういう命令を持ち,
どういう処理をし,レジスタは何ビットの
ものが何本あるかなどというデータ)を入
力すると,自動的にお望みのコンパイラが
出来上がってしまうというすばらしい話で
す。
もし,そういう コンパイラ 作成 ツール (コ
ンパイラ ジェネレータ) が一 度できてしま
えば,もう コンパイラの ことでやることは
なくなってしまうはずでした。新しい言語
やプロセッサができても,それを記述する
データを作成するだけで, インスタントに
新しい コンパイラが 出来上がるのです から。
ところ力す,実際のところそういう万能ツ
ールはこの世には存在しません。ただし,
実際問題としては,本当に作ることができ
ないというわけではなく,手で書いた優れ
た コンパイラ ほど,よいコードを吐き出す
よい コンパイ ラが自動的には作れないとい
うほうが正しいかもしれません。このこと
は,新しい言語や プロセッサ アーキテクチ
ャを完全に記述することが困難であるとい
うことともかかわってくる問題といえまし
ょ5。
L ノ \ 。夕ーソン 教授の責任 /
コンパイラジェネレータ実現へのアプロ
ーチは決して軽んじてはいけません力す,夢
のような話にいつまでも振り回されていて
はいけません。ソフトウェア危機を解決す
る方法はた AT ひとつ,ハードウェアがソフ
トウェアのことをもっと考えること,と思
われてなりません。いくら,ただ速いハー
ドウェアを作ったって,結局は虚しいこと
になるというわけです。
68000, 68010,68020……,あるいは
8086, 80186,80286……などというマイク
ロプロセッサのシリーズにおいて,新しい
チップが登場するたびに,新機能一覧の中
にはいつも「高級言語のサポート」という
項目が入っていました。ところが,実際に
現場でプログラミングしている人たちは,
「新しいチップが登場するたびに逆にプロ
グラミングがだんだんと難しくなってき
た」と僕にこぼしたものでした。
命令やレジスタやアドレツシングモード
が増えれば増えるほど,少なくとも,選択
肢が増えてい〈わけで,どれを使うかとい
うことの重要性は増す一方です。また,そ
の選択自体の仕事も確かに増えるわけです
から,そうなったのかもしれません。最適
なものをうま〈選べば,速度も増し,マシ
ン 語もコ ンパク トになるのでしよう 力す。
ところ力す最近の マイクロプロセッサは 一
体どうなっているのでしようか?目を覆
いたくなるような現実があるのです。コン
パイラなどぉ構いなしという RISC タイプ
の マイクロプロセッサが 一世を風靡してい
るのですから。 RISC 提唱者(首謀者)のパ
ターソン教授本人が,別にコンパイラは誰
かひとりが書けばいいのであって,皆さん
にご迷惑はかけませんよ,マシン語など書
けなくても,いいコンパイラでどんな低レ
ベルの(ハー ドウヱアに密着した)処理で
も書けるのですと言って,ソフトウェア危
機に対して堂々とシラを切ったわけです。
ところが,どうでしようか?うちの研
究室など SPARC チップのマシン語に苦し
んでいる学生が続出しています ( annul ビ
ットがどうのこうの,これは delay slot で
……)。「パターソン教授,どう貴任をとっ
てくれるのですか?」と言いたいところで
すが言いません。一般に,大学の研究者な
ど極論すれば,世の中がどうなるかより,
自分の論文の数を増やすほうが大事という
面が少なからずあるし,それもしかたがな
いという面もあるようにも感じますので。
RISC チツプのワークステーションに
UNIX を敝せ, C コンパイラを動かすだけ
でこの先もよいというならば,文句は言わ
ないのですが……。
L 乗算フ□グラムに潜むもの/
話がタネタネ化したように思われるかも
しれませんが,とりあえず言いたいことは,
「さしあたってのところ, マシン 語はやは
り捨てがたいものがある」という簡単なこ
となのであります。
ここで,話がいきなり具体的なことにな
154 Oh! X 1991.2.
Arita Takaya 有田隆也
り,ひとつの小さなマシン語のプログラム
(8 ビットと8ビットの乗算)を紹介しま
す0なんでもないプログラムといえばそう
なのですが,プログラムを作った人の気持
ちが伝わる人には伝わるでしよう。僕が行
っている大学の2年生用の実験の中で使用
しているプログラムですが,僕自身が作っ
たわけではありません。
ふつう,マシン語で 乗算プログラムを 書
かなくてはならなくなったとき,まずしな
ければならないのが, マシン 語命令一覧表
を調べることでしよう。そして乗算命令が
なかった場合には,乗算をいくつかの命令
で表現することになります。 X 掛ける Y を
マシン 語の加算などを使って実現しようと
するとき,まずだれでも考えるのが, X を Y
回足せばよいだろうということでしよう。
実際,そのようなプログラムは,冒頭に紹
介した本誌の特集の中の毛内さんの記事に
も載っています。
ただし, X を Y 回足すプログラムは大変
わかりやすいという特長がある反面,実行
スピードという点で満足のいかないものに
なっています。なぜならば,運が悪いとき,
たとえば Y が255だったりすると,ループを
255回も回らなくてはならなくなるからで
す。そう考えると, XI : Y を比較して, X が
Y より小さいのならば, X と Y を入れ替えて
Y を X 回足すという方法がまず思い浮かび
ます。でもここでは,もっと一気に速度を
向上できる画期的なプログラムを紹介する
ことにしましよう。プログラムをリスト1
に示します。
この プログラムの 意味をここで詳しく説
明することはしません。苦労してなんとか
意味がわかったときのうれしさを味わって
ほしいからです。また,マシン語に強い人
には説明は不要でしよう。でも,命令の意
味だけは書いておかないとだめだと思いま
す。
このプログラムは8085 (8080 を少しだけ
拡張したもの)というマイクロプロセッサ
用のアセンブリ言語で書かれています。以
下に簡単に命令の意味を書きます。
氺ホホ
MVI B ,00 H
B レジスタの内容を0にする
MOV C,A
A レジスタの内容を C レジスタにコピ
LDA ( KAZU 1)
メモリの KAZU 1 番地の内容を A レジ
スタに コピー
DAD H
HL の内容 ( H , L 2 つのレジスタを連
結して16ビットとみなす)と HL の内
容の加算(つまり, HL を2倍するこ
と=1ビット左シフト)
DAD B
HL の内容と BC の内容を加算
JNZ
ゼロフラグがゼロなら指定番地にジヤ
ンプ
JNC
キヤリフラグがゼロなら指定番地にジ
ヤンプ
SHLD ( KOTAE )
KOTAE と KOTAE +1 で示される番
地に HL の内容を書き込む
* * *
このプログラムのミソは8行目の DAD
H ということができるでしよう。計算の原
理そのものは筆算で乗算をするときと類似
していますが,筆算とは違って大きいビッ
卜から調べているので,この命令ひとつで
2つの動作(乗数のビットの切り出しと途
中結果のシフト)がなされているのです。
さて,このプログラム中のループを1回
実行するときに実行される命令数は分岐命
令も含めて4あるいは5という少なさであ
り,しかもループの回数は乗数がいくつで
も (255 でも)8回でいいという高速性を誇
っています。ループ1回で平均 4. 5命令実行
するとして36という命令数を実行するだけ
なのです。ちなみに , Oh ! X に載っていた
やり方では,仮想 CPU のプログラムでは,
乗数が128とすると,ループを構成した実行
命令数は384命令になります。
実際に速度を厳密に考えるには,単に実
行された命令数を数えるのではなく,マイ
クロプロセッサの データシー トで各命令の
実行時間(ステップ数)を調べ,求める必
要があります力 ? ,そこまで凝る のは 少し大
変なことになります。
しかし,このプログラムがベストなもの
ということはできません。まだまだ最適化
することができます。たとえば,乗数が小
さいときにも必ず8回ループを実行するこ
とが気になります。ほかにも改良すべき点
はあると思われますが,どんな乗数,被乗
数を持ってきても,いつも最小の時間でで
きるというプログラムを構成するのは至難
の技ということができるでしよう。平均(期
侍値)を小さくするような改良ならば,考
えられるでしようが。
匕 装の滅味 /
人の手でなければできないような最適化
はまだ案外と残っているものです。そして
最適化された プログラムを 見るたびに, 僕
は心の中で涙を流すのであります。それは,
「よくもまあ苦労して1命令少なくしたな
あ」 という プログラマへの 賞賛だけでなく,
実は,「いずれこのような最適化の技術も定
式化されコンパイラに組み込まれるのだろ
うなあ。結局このような努力は無駄なもの
とされる日もくるのだろうな」という涙の
ちよちよぎれるような複雑な気持ちなので
す。ですから,「さしあたってのところ,マ
シン語はやはり捨てがたいものがある」と
あえて書いたのです。
参考文献
毛内俊行,「マシン語ってなあに? j , Oh ! X 1990年7
月号, pp . 47-51
リスト1 乗算プログラム
1
MVI
B ,00 H
2
MVI
L ,00 H
3
し DA
( KAZUI )
4
MOV
C,A
5
し DA
( KAZU 2)
6
MOV
H,A
7
MVI
A ,08 H
8
LABEL 1
DAD
H
9
JNC
LABEL 2
10
DAD
B
II
LABEL 2
DCR
A
12
JNZ
LABEL 1
13
SH し D
( KOTAE )
(メモリの K AZU I 番地と K AZU 2番地の内容の乗
算結果をメモリの KOTAE 番地に格納)
知能機械概論 155
m56u
猫とコンピュータ
襄し総)# RIP © ギフト
TaKazawa Kyoko
高沢恭子
厳しさのない,やさしい冬の日々がすぎ
てゆく。そのぶん,日差しはぼんやりとく
すんでいる。季節がその季節らしさを見せ
てくれないのは気がかりだが,わが子が受
験する冬は,おだやかなほうがありがたい
なんて思う。
それでも,気候の不順とは別に,東京が
年々あたたまっているという話を聞くと,
人並みに追想することもある。自分が中学生
のころの,あの庭一面の菊の根もとで,黒
々とした土を押し上げていたガラスのよう
な霜柱や,コタツに入っていても背中まで
押し寄せてきた冷気は,どこへいってしま
ったのだろうと。
受験の季節がすこし冷えびえとしている
のも,あとにおとずれる喜びと旅立ちの春
をいっそう輝かしいものにしてくれるため
かもしれない。それなら,冷たさに澄み渡
る晴天の日も,やっぱりきてほしい。
電気のタタリ
使用4年で火花を吹いて黒コゲになって
しまった CRT , PC — KD 851 のことを FBI
- NET にアップロードしたら,テクニカ
ルライターの「ぶん」さんが,こんなふう
に教えてくれた。
「たぶんそれは, CRT のフ イードバ、ッ
クトランスが,磁束もれを起こしている
ものと思います。そして, シャーシと トラ
ンスの間で放電しているため,バチバチと
いう音が出ているのでは……。はっきり言
ってトランス交換しかありません。 4年と
はかなり短い気がします。よくあるのは,
家庭用の TV で,7,8年使用しているも
のに,この傾向があります。最近は部品代
をけちっているので,寿命が短くなってい
るのでしよう力。
「バイク,くるま」ボードのシグオペ,
lbb Oh! X 1991.2.
「 Impulse 」 氏の感想は,「どんな感じだ
ったか想像するだけでちよっと怖いですね。
私のは KD -852ですが, PC -8801 を使っ
ているときからですから,もう5年ぐらい
になるかのかな? ここ10日くらいは PC
の電源入れっぱなしで, CRT もつけたまま
ってこともありますから,いないときにハ 0
チパチやられたらこまるなあ」
「昔, Xlturbo のデイスプレイが,と
きどき,『ぱちん!』とかいうことはあり
ました。ほんの一瞬で, CRT 中央に横に1
本線が走って . また元にもどります。怖
かったけど,ほかに影響がなかったんでほ
っときました〇オレンジ色の火を吹くコン
デンサの話も聞いたことがある」というの
は「ちゃがま」氏。
「 SHUN 」 君は,「うちの PC —100 の CR
T も,電源入れたら火を吹いたんだな……
修理に出したんだが『修理不能』と言われ
て,結局,もうカラー CRT が手に入らな
いから, モノクロで がまんしているのだっ
た」 0 「 Momi 」 氏も,「うちのテレビは10
年近い。う一む,これはあぶないかなあ。
さすがにヴオリ ユーム がガリ オームに なっ
てるけど」。
当の黒コゲ CRT は,すでに「粗大ゴ
ミ」として区役所に引き取りの供頼をすま
せてあった。「ぶん」さんは「放電を助け
ているホコリをとりのぞけば,だましだま
しもう少しは使える」と言うけれど,いま
にも爆発しそうな CRT と向き合ってキー
を叩く勇気はおこらない。それに,じつは
背中をはがして中を調べたり,通電させて
みたりさんざん遊んだあげく,ネジ類をい
くつも失っていたのだ。
XC -1498 CII という三菱の CRT がきて
からも,黒コゲ君は区役所に引き取られる
まで,部屋の隅におかれていた。
0:
お世話になったあの方に,といろ感謝の気
持ちをこめて贈るお歳暮。しかし,いまや
それもパソ通で注文する時代らしい。少々
味気ないが,忙しい年の瀬には最適か。と
思いきや,そラは問屋が卸さないのだ。
学士会館で「きまこん • フォーサイト10
周年記念会」が行われたとき,コンピュー
タマンのササキさんに黒コゲ CRT の話を
したら,「4年は早すぎるから抗議したほ
うがいいですよ」とすすめられた。すると
そばからカワムラ先生が,「私は本体が火
を吹いたことがあります。あれは怖かった
ですね」なんておっとりした顔で言うので
おどろいた。
昔,そうじ機や蛍光灯のスイッチを入れ
たショックで,夫の入力中のデータをすべ
てとばしてしまったことがよくあった。と
ても喜劇的な事件なのだが,何かの衝撃で
ストップしてしまうデリケートさは,コン
ピュータらしくて,なっとくできる思いが
あった。それにくらべると,疲れて火を吹
くというアクションは,まったく漫画的で
はあるものの,パソコン崇拝で忘れられて
いる電気の怒りのようでドキリとする。
それにしても,「文豪」の墜落, CRT の放
電,どうもこんどは PC — 9801があやしい。
わが家の OA 機器軍団は反乱をはじめたの
だろうか。
急がばパソコン7
2つのマイコンクラブ合同の10周年記念
会は,幹事役の夫の補佐として私も出席さ
せてもらった。 オープニングのスピーチで
は,それぞれのクラブの創始者が,変化に
満ちた10年の思い出を淡々と語ったが,そ
れがかえって印象的だった。
当夜はエヌ•アイ•エフ ( NIFTY-Ser
ve ) のナカムラ常務をお招きし,「バソコ
ン通信の夢」と題する記念講演をしていた
だいた。これからパソコン通信はもっと真
価を発揮していくであろうし,そのひとつ
として,障害やハンデを持った人たちにと
って,その有益さが発揮できるものであり
たい0また,ビジネスで長く滞在していた
スペインでの実感から,スペイン人とは対
照的に,余暇の生かし方のまったくへ夕な
日本人にとって,パソ通は創造的な余暇を
過ごすひとつの希望になるのではないかと
いったお話だった。
秋は中学校も行事の季節。学芸発表会,
区の陸上大会,創立10周年記念式典,日曜
参観。もちろん,その間に中間試験,期末
試験があり,宿命の内申決定となる。
トオルの予定と夫の スケジュール, それ
に自分の計画と,3者が関連しあって,秋
から冬にかけての日程の調整はとくにむず
かしい。気がついたらお歳暮の シーズンに
なっていたが,20分もあれば行ける日本橋
のデ ハ。一 卜に,なかなか出かけられない。
その日本橋の老舗(しにせ)デパートの
ひとつである T 店から,パソコン通信で贈
答品の依頼ができる「電子カタログ」が,
今年も届いた。1年前の暮れに申し込み
をしたとき,無料のソフトがはじめて送ら
れてきた。さっそく利用しようとためして
みたのが,あまりの使いにくさにすぐに見
切りをつけて,現場のデパートまで出かけ
て用事をすませてしまった。それから夏の
お中元,今回のお歳暮と,ソフトが送られ
てきたのは3回目になる。
いままでに,商業通信ネットを通じて文
具などのオンラインシヨッビングをしたこ
とはあるけれど,デパート独自のネットワ
ークを直接利用したことはなかった。それ
というのも, T 店のソフトに失望していた
ためだが,ほんとにいそがしくて時間がつ
くれないこんなときこそ,一度はためして
みるチ ヤンス かもしれない。
そこであらためて, T 店の「電子カタロ
ダ」を手にしてみた。1年前に,グラフイ
ック画面などのスピードの遅さに耐えられ
なかった記惊があるが,あとはすっかり内
容を忘れている 3
エンドレスのソフト
3 枚のフロッピーデイスタは, 1 枚がシ
ステムディスクで,あとの2枚がデータデ
イスク。ただし,システムディスクには,
MS-DOS のシステムと日本語入力 FEP が
入っていないので,これから始めな〈ては
ならない。
やれやれと 思つ ていたら, マニュアルの
いちばん最初に, 「マニュァル 内容の追加
修正がある場合には, システムディスクの
な かの README . DOC という ファイル
に記載してありますので,必ず最初にご覧
ください」とある。
指示どおりにすると,修正があるわある
わ . 20力所あまり。しかもファンクシヨ
ンキーの変更など大きな訂正が半分以上で,
スタートからびっくりさせる。これを確認
したり,プリンタで記録をとったりで何分
もかかった。
実行ディスクへのイ ン ストールのとち ゆ
う,こんどは「必要なファイルのうちコピ
一できなかったファイルがあります」とメ
ッ セージが出るので,やりなおしてみるが
同じことがくりかえされる。しかたなく無
視して FEP を組み込む。少し強引にやら
ないと先へすすめない。
これでやっと実行の運びとなる。モデム
を ON にした状態でディスタを起動 。 「T
店 PCNETWORK 」 というタイトルと
目次がカラーグラフィックであらわれた。
これから マニュアルに した力 ? って,会 M 登録
や商品の注文が始まるはずなのだが,そう
かんたんにはいかない。
会員登録の画面では,氏名,性別,年齢
などを入力するとちゅうで,どうしても記
入できない欄がある。素通りするうち何回
H かに,なぜか記入ができる。
商品の一览では,選んだ画面が不必要と
わかっても元の幽面にもどることができな
い 。 ESC キー や ファンクシヨンキーを か
たはしから叩いてみてもダメ。何かを選ん
でつぎに進むことしかできず,「注文」の画面
まで連れて行かれる。そこではじめて「発
注」力 1 「目次」かを選べるので,元のタイ
トル 画面に帰ることができる。これはたい
へんな時間のロスだ。
商品についても,項目だけではわからな
いから,ちょっと内容を知ろうとしてむや
みにキーを選択すると後悔する。のし紙を
デザインした装飾幽面や,商品のイラスト
がグラフィックであらわれて,これがけっ
こうな時間がかかる。しかも前述のように
画面のストップや取り消しはいっさいでき
ないのだからまったく困ってしまう。
プログラムを進めていくとちゅう,何回
となくハングし,ひんぱんにリセットをく
りかえした。四苦八苦して商品を選び出す
までの,ハラハラの長い不安な道のりは,
まるで RPG のようだ。
注文の入力もひと波乱だった。単価,数
量,金額と,順に記入を終えてリターンを
するたび,ひとつ前に入力したものが変化
してしまう。いったい正しく記入できてい
るのかどうかわからない。
準備の段階からここまでで,すでに1時
間半が過ぎた。地下鉄での H 本橋往復,商
品をじっさいに見ながらの注文が,頭の中
で常に並行している。
まがりなりにも沈文の準備が嘴い, T 店へ
のアクセスとなる。 flO キーでオートダイ
ヤルされ,データ送信が行われる。通話は
フリーダイヤルなので,、 1 〗方は無料。
このソフトは丁店の依頼で某社が制作し
たものらしいが,どう考えても習作の段階
としか思えない。何人の人がこのソフトを
希错したか知らないが,環境設定だけお
っくうなのに,走りはじめると事故つづ
き,カタログの内容はおァソビ同然。天ド
の本橋 T 店はどう考えているのかな。
データ送信が終わるとメニュー_而にも
どり,「注文の確認 j のキーを押すとふたた
び センターに つながる。きようの RPG の
戦紐はどんなものだったのかと画面をみつ
めると,「本 U はメンテナンスのため,サ
ポートセンターに お問い作わせください」
と m 話番号が示されている。電話をすると
時間外のためか応答なし。
おまけがひとつ。最後に通信終了のキー
をセレクトすると,いったん问線は切れる
が,ふたたびセンターにつながり,モデムを
OFF にしないかぎり通信状態は終わらない。
猫とコンピュータ 157
PENGUIN: 删
ぺ•ン•ギ•ン•情•報•コ • 一 •ナ • 一
NEW PRODUCTS
高速プリンタ搭載
WD - A 351
シャープ
シャープは書院ラップトップモデルの最
高級機として 「 WD - A 351」 を発売した。
「 WD - A 351」 は業界最高水準の82字/秒
の高速高精細プリンタを搭載している。ま
た,新たに明朝体,毛筆体,ゴシック体も
内蔵の「トリプノレス ーノヽ。ーアウトラインフ
ォント」を内蔵してぉり,明朝に加え,毛
筆体,ゴシック体も,名刺に使える小さな
文字から垂れ幕やポスターに使える大きな
文字まで,104種類の文字サイズで印刷する
ことができる。
そのほかの特徴としては,
• 多彩な印刷が可能な「ぉもしろ印刷」
• 手軽に枠組み文書や名刺が作成できるパ
ーソナル DTP
• 書院カルクと連動したカード型データべ
ース書院パーソナルカード
• 荧換効率をさらに商めた約17 . 6万例の AI
- V 4 辞書
•同社のハイパー m 子手帳ともデータの共
用が可能な電子手帳通信
• MS - DOS コンバータ,通信ソフトを装備
し,パソコンとデータの共用が可能
などの機能を備えている。
価格は238,000円(税別)。
く問い合わせ先〉
シャープ ㈱ 003(3260)1161,06 (621) 1221
158 Oh!X 1991.2.
フルカラーファクシミリ
JX -5000
シャープ
JX-5000
シャープは最大 A 4 サイズまでのフルカ
ラー原稿を高速かつより忠実に送受信する
ことができるフルカラーファクシミリ 「JX
-5000」を発売した。
「 JX -5000」 は世界で初めて送受信一体型
デスクトップサイズを実現。カラースキャ
ナ分野で培った同社独自のデジタル画像処
理技術と新開発の高_質昇華型フルカラー
プリンタ,ケイデイデイテクノロジーとの
共同開発による独自の画像圧縮伸長技術,
さらに専用の高速ァダプタなどの要索技術
が駆使されている。
送信読み取り部には縮小光学系 CCD イ
メージセンサが採用されており,凹凸のあ
る原稿も読み取りボケなく読み取ることが
できる0また,一走査でフルカラーを読み
取るので色ずれの少ない鮮明なカラー画面
データを得られる。
さらに,原稿の拡大/縮小電送を可能にす
るズーム機能や通信中の画像の乱れを自動
修正する ri 勋誤り再送 ( ECM ) 機能など各
種機能も装備している。
なお,本製品は共同開発先であるケイデ
イデイテクノロジーからも同時発売の予定
となっている。
価格は3,700,000円(ァダプタ 「 JX -500
FX 」 を含む,税別)。
く問い合わせ先〉
シャープ ㈱ S 03 (3260) 1161,06 (621) 1221
音声画像データべース
THE 近江商人
ビットァート
ビットアートから, X 68000 を利用した音
声画像処理データベースシステム 「THE
近江商人」が発売された。
「いつでも誰にでも使えるコンピュータ」
ということで,画像情報処理,そして音声
情報も同時に簡単に処理することができる
ようになっている。
用途としては,
•観光,窓口案内などのディスプレイ
• 映像の データベース
• ポジ-ネガフイルムの管理
• 導入研修などの各種マニュアル
•不動産,中古車販売などの データベース
• 各種店頭販売促進ツール
などが考えられ,将来には ISDN 化するこ
とも可能。
価格はシステムにより,約300万から400
万円 ( X 68000 とのセット売り)になる。
く問い合わせ先〉
㈱ ビットアート Q 0775 (52) 7190
八ィパー電子手帳用 1 C 力ード
PA -9 C 30/5 C 01/5 C 02
シャープ
ハイパー 電子 システム 手帳 「 DB-Z 」 用力
ードとして,3種類のカードが発売される。
ラインアップは以下のとおり。
〇英和 • 和英辞典カード 「 PA -9 C 30 j
辞書の中で敁もよ〈使われる英和/和英
辞典を1枚にまとめ,本格的な辞嘗にも匹
敵する約23万語を収録,さらに学習に便利
な発音記号も収録している。また,大画面
を生かした見出し語リストー覧表示により,
調べたい語をいままでのようにいちいち1
語1語順送りしなくても,見たい語にタッ
チするだけで内容を見ることが可能なので,
検索時間を大幅に短縮できる。
綴りのわからない単語の スペルを 「?」
[axMar]
PA-5C0I PA-5C02 PA-9C30
で置換し,該当する単語を探すワイルドカ
ードサーチ機能, スペル 数がわからなくて
も最初と最後の スペルを 「〜」でつな ぐ だ
けで該当する単語が探せるブランクワード
サーチ機能,そしてビジネス用語,日本文
化特色語(和英のみ),慣用表現集(和英の
み),人名,地名の各分野のジャンル別索引
なども装備しているので,検索しやすくな
つている。
そのほかにも和英辞書で検索した英単語
をもとにして,英和辞書と同様に詳しい意
味や熟語などをそのまま調べられる,逆翻
訳機能などを搭載している。
価格は18,000円(税別)で,2月10日発
と,1手1手確認しながら観戦できる「手
動」モードの2つのモードで実力を持った
棋士同士の熱戦を手軽に電子手帳上に再現
する。
また,収録された対局の全戦で「次の1
手」を推察して打ち,その正否で棋力を判
定する「判定」モードで実力を試すことも
できる。中級では5つのヒントの中から上
級はノー ヒントで棋士の打った次の手を選
ぶ。1手ごとに正否がわかるほ力%対局終
了後に実力が画面に表示される。7,000円。
〈問い合わせ先〉
㈱ ヘクト 003(5275)5481
CCI 1 T V .42 bis 搭載
MD9BFS5V
オムロン
オムロンは 「 MD 96 FS 5」 をバージョンア
ップした機種, 「 MD 96 FS 5 V 」 を発売した。
「 MD 96 FS 5 V 」 は,あらたに国際標準デ
—夕圧縮機能として CCITT (国際電信電話
諮問委員会)が昨年勧告した CCITT V .42
bis を標準搭讀役している。
主な特長は以下のとおり。
• 国際標準通信規格である CCITT V .32 を
サポートしているので,本格的な9600 bps
全二重通信を実現し, V .32 を搭載したモデ
ム同士で通信が可能。
• エラー訂正機能として MNP クラス4と
CCITT V .42 を標準搭載している。
• データ圧縮機能に MNP クラス5と
CCITT V .42 bis を標準搭載しているので,
ソフトなどの工夫なしで実効通信速度が
19200 bps まで向上。
価格は198,000円(税別)。
〈問い合わせ先〉
オムロン ㈱ 303(5488)3219
MD96FS5V
AMIGA 内蔵 CDROM
CDTV
コモドール
売予定。
く問い合わせ先〉
シャープ ㈱ S 03 (3260) 1161,06 (621) 1221
〇「ハットリス」カード 「 PA -5 C 01」
フアミコンや業務用ゲーム機で好評の
「ハッ トリス」カード。この 「ハット リス」
は「テトリス」の作者アレクシィ.パジト
ノフ氏制作第2弾のゲームである。操作は
簡単で,逆さ煙突から落ちてくる6種類の
ペアの帽子を同じ種類で連続して積み重ね
ていき, 5つ重ねると得点になるというも
の。 ステージが 進む につれ 帽子の種類 やス
ピードが 速くな り, 鋭い判断力と反射神経
が 要求され る。
価格は6,000(税別)で現在発売中。
く問い合わせ先〉
㈱ マイクロキャビン 〇〇593 (51) 6482
〇囲碁名鑑ヵード第1巻 「 PA -5 C 02」
1989年度に行われた囲碁の7大タイトル
戦ぉよび話題局など全40局を収録してぉり,
操作しなくても観戦できる「自動」モード
コモドールの新しい世界戦略マシンである
'「CDTVj (Commodore Dynamic Total Vision ) は
AMIGA と CDROM を結合させた,まったく新しい
カテゴリーのコンピュータである。 「 CDTV 」 のい
ままでの CDROM と異なる点は,一見普通の CD ブ
レイヤーと思われる本体の中に, AMIGA 500 ( +
5 I 2 K バイト RAM ) 相当のコンピュータが内蔵さ
れていることであり,そのうえ1,000ドル程度と
安価になっている。
標準ではキーポードやマウスなどは付属して
おらず,すべての操作は付属の IR (赤外線)リモ
—トコン トローラによって行うことが可能。こ
のリモー トコントロー ラはいままでのマウス,
ジョイスティック,キーボード, CDROM 操作の
すべての機能を搭載しながらも使いやすくなっ
ている。
主なスペックは以下のとおり。
• CDROM 部
データ読み出し : I 53 K バイト/秒 MODEI
: I 7 IK バィト/秒 MODE 2
: 2 M バイ ト/秒 burst
平均アクセスタイム: 0.5 秒
最大アクセスタイム: 0.8 秒
Commands : CDROM 、 CD - AuckxCD+G
MTBF : 10,000 P . O . H .
CDTV
Standard S 叩 ported : ISO - 9660
容量 : 540 M バイト
• 入出力端子
アナログ,デジタル RGB ( DB -23) 出力
コンポジットビデオ ( NTSC ) 出力
S 映像出力端子
RF 出力
セントロニクスパラレルインタフェイス
RS -232 C シリアルインタフェイス
外部フロッピーディスクドライブ
ステレオオーディオ出力
MIDI IN/OUT
RAM / ROM 力ード (256 K バイト)ポート
現在のところは欧米などでしか発売されてい
ないが,今年春ごろから日本でも発売される予
定〇
ペンギン情報 コーナー 159
FILES OhiAA
このインデックスは,タイトル,注記 一
筆者名,誌名,月号,ページで構成されて
います。寒さもいちだんと厳しくなってき
た今日この頃0でも春はもうすぐそこ,何
事にもめげずに頑張ってくださいね。
参考文献
I / O 工学社
ASCII アスキー
コンブティーク角川窨店
テクノポリス徳間書店
ボケコンジャーナルエ学社
POPCOM 小学館
マイコン電波新聞社
マイコン BASIC Magazine 電波新聞社
LOGIN アスキー
一般
►年末年始パソコン購入ガイ K *9 I
Macintosh や AMIGA といった洋モノから PC - 980 1 • X 68
000, FM TOWNS といったお馴染みの槻種まで,各マシ
ンの特徴やコストパフォーマンスを解脱。購入予定のあ
る人は必読。——編集部, LOGIN , 24号,251 -263 pp .
► NETWORK CONNECTION
ネットワーカー•ホリックが新装開店。今号では , E
YE - NET の情報誌と AV 専門誌が運営する 「 aVIej を紹介。
X 68000 の PDS は D 6 GA が開発したウインドウシステム 「K
O - WINDOWjo ——編集部, LOGIN , 24号, 296-297 pp .
► Goods Collection
シャープから発売された電子手帳 PA - 8800と PA - 6300
の紹介。——編集部,ボヶコンジャーナル,丨月号, Ip .
►日本パソコン百景
日本を飛び出して台湾の台北中華商場へ。いわば台湾
の秋葉原。その混雑と汚さにビックリの取材陣。ーフ
デヨシ&カシワラ, ASCII , I 月号,286 -288 pp .
►サイ パーソン ( CYBERTHON ) 報告
サンフランシスコで行われたバーチャル • リアリティ
に閲するイベント,サイバーソンの棋様を詳細にレボー
卜する。——野々村文宏, ASCII , I 月号,369 -376 pp .
► MIT Media Lab .
MIT Media Lab . 創設 5 周年記念シンポジウ厶の2日間
の棋様を,コボレ話も含めて紹介する。一砂原秀樹,
ASCII , I 月号, 433-437 pp .
► ASCII EXPRESS
ラスベガスで開催された世界最大のコンピュータトレ
ードショー, COMDEX の棋様をレポートする。——編集
部, ASCII , I 月号, 282-283 pp .
► グローバル.ビレッジ.ダイジェスト
世界最大のコンピュータショウ, COMDEX について,
その性格から内容,日本に対する彩響まで幅広くレポー
卜する。——高田正純,マイコン, I 月号,140- 149 pp .
►各種モデムの性格診断
X 68000 を使って行われたモデム7機種のスピードテ
ストを豊富なグラフによってまとめる。——マイコンネ
ットワーク研究会,マイコン,丨月号, I 50- I 58 pp .
►パソコンソフト • マーケットガイド
ホビーソフトの年間ペスト10と,お勧めのゲーム20本
を紹介。——編集部,マイコン, I 月号,別冊 46-70 pp .
►秋季コムデックス
COMDEX の模様を主に会社別に紹介していくレポート。
- Dana Blankenhorn , I / O , 丨月号, 238-24 Ipp .
►アナログ回路による重低音システムの設計
カーオーディオに重低音を追加する装置を設計する。
3 D フイルタとパワーアンプを使つたもので,へビメタ愛
好者には必需品。——山崎誠, I / O , I 月号, l 96-204 pp .
► I / O 総目次
I / O 版 INDEX '90。 I 年間の I / O の記事を手早く探せる総
目録。一編集部, I / O , I 月号,2 14-216 pp .
MZ シリーズ
MZ -1500 ( MZ -5 Z 001 BASIC )
►漂流
海を漂流しているロジンソン。飢え,渇き,絶望に耐
えながら陸地を目指すゲーム。-へルニャン•バウ
マン,マイコン BASIC Magazine , I 月号,122- 124 pp .
MZ 2500 ( M 25- BASIC )
►恒例! 町内玉入れ大会
みこちやんを操って,玉をすべてゴールのカゴに入れ
れば 0 K 。 パズルゲー厶。-謎のパズル大好きおじさ
ん,マイコン BA&C Magazine , 丨月号, I 25- I 26 pp .
Xl/turbo/Z
XI シリーズ
►ドロアーガの塔エクサラント
各階のボスやスライムと戦い,宝を取り,罠や迷路を
くぐりぬけ,泉で休み,姫を無事に救け出す。——堀田
英克,マイコン BASIC Magazine , 丨月号,151- 152 pp .
►へズメタルジャケット
2〜6人用対戦戦車ゲーム。対戦バトルシティ。要ジ
ョイスティック2本。——へミタク,マイコン BASICM
agazine , I 月号,153- 154 pp .
XI turbo シリーズ
► A STARRY NIGHT 〜星の多い夜〜
洗脳された星をブラック•ホールに沈めろ。——中西
弘幸,マイコン BASIC Magazine , I 月号,155- 157 pp .
X68000
► NEW SOFT
生中継 68, Misty Vol . 6, Magical Shot を紹介。——編
集部, LOGIN , 23号, l 8-27 pp .
►最新ゲーム徹底解剖!!
新着 ゲーム 「アトミック •ロボ キッド j 「ソル•フィ
ース j 「ニューラル•ギア j と RPG 1 ■ラグーン j を攻略。
——編集部, LOGIN , 23号,170- I 9 lpp .
►よくわかる続ダンジョン•マスターカオスの逆!!
開発中のシステムを機種ごとに紹介。——編集部 , L
0 GIN , 23号, 200-20 Ipp .
► Software Review
超難解シューティング「ナイアス」をサカナに,アク
シヨン•シューティングの近未来を語り合う。一松本
新刊書案内
NTT が
核攻藝される日
* ‘
浅井陆
NTT が核攻擎される。どこが攻擎するのか。ソ
連である。どうして攻擊するのか。アメリカの極
東核戦略において,重要な国防通信システムの一
端を担っているからである。なぜ攻擎されるのか。
通信網がやられれば現代の戦争は戦えないからで
ある。在日米軍基地にアメリカの通信システムが
あるのは当然だが,米軍とはまったく関係のない
NTT 国分寺電話局や, KDD 大手町電話局も米軍の
軍事通信に使われているのだ。
と,こういうドキュメントである。ウサンくさ
そうなタイトルだが,米軍が日本からも核攻擎指
令ができるようなシステムをとっていても不思議
はないし,資料もきちんと揃えてある。ポイント
は日本が国民の知らされないまま,重要な核攻擎
の拠点になっていることや,日本の光ファイバー
技術がひと役かっていること。民間企業であるはず
の NTT や KDD が米軍の協力をしてケーブルを引い
たり回線を用意したりし,日電が米軍の N 0 RAD
と近くの指令部を光ファイバーで結ぶ際,光通信
装置を納入した。とかく見えないところで物騒な
のは次戦緩和のいまもかなりないのだ。 ( K )
NTT が核攻擊される日浅井隆著 フットーつ
-ク出版社刊 003 (5395)571 1 四六版 295ぺ
ージ 1,500円
160 Oh! X 1991.2.
害籍の価格は消費税込みです
FILES /J/ilIY
隆 一VS. X 68000新聞社, LOGIN, 23 号. 208-209pp.
► X 68000新聞
イメージファイト,ソル•フイース,ブルトン•レイ,
マーブルマッドネス,スペース.ローグを紹介。——編
集部, LOGIN, 23号, 268-27Ipp.
► NEW SOFT
ルーシー•ショット, ブル トン•レイ を紹介。-編
集部, LOGIN, 24号, 28-29pp.
► The News File
SUPER-HD のハードデイスクのないタイプ, 「X68000
SUPER」 を紹介。——編集部, LOGIN, 24号, 39p.
►最新ゲーム徹底解剖!!
シューテイ ング ゲーム 「ソル. フィース」の 6面を徹
底解剖。——編集部, LOGIN, 24号, 200-20Ipp.
► X 68000新聞
遥かなるオーガスタ,ワールドスタジアム,栄冠は君
に,リングマスタ_11,プリンス•オブ•ペルシャ,を
紹介。また,発売が再び増え始めたシューティングゲー
ムを「第二次シューティングブームだ!!」と銘打って特
集。——編集部, LOGIN, 24号, 274-279pp.
►バソコンゲーム大全
「銀河英雄伝説II」と「続ダンジョン•マスターカ
オスの逆襲」の攻略法。一編集部,コンブティーク,
I 月号, 136-139, I60-I6lpp.
► GAMING WORLD
イメージ ファイト,ジェミニ ウイング, ソル•フイー
ス. ニューラル •ギア, マーキュリー, ノスタルジア,
シュヴァルツシルト,リング マスター II,エメラルド*
ドラゴンの紹介。一編集部,テクノポリス,丨月号,
38-57pp.
►攻略ファイト!
「続ダンジョン•マスターカオスの逆襲」と「銀河
英雄伝説II」を攻略。一編集部,テクノポリス,丨月
号, 80-83, 88-89pp.
► Hot Press
続ダンジョン•マスターカオスの逆襲,ブルトン •
レイ,ニューラル•ギアの紹介と攻略法。リングマスタ
-II, 生中継68,ワールドスタジアム,ソル.フイース,
イメージファイトの紹介。——編集部, P0PC0M, I月
号, l6-32pp.
►ゲームの達人
銀河英雄伝説IIを攻略。——編集部, P0PC0M, I月
号, 90-93pp.
► ミュージック • パビリオン
X68000 X-BASIC 用 ミュージックデータ 「TRUTH (T-S
QUARE) Jo ——編集部, P0PC0M, I 月号,183- 187pp.
► NAGDRV 情報局
マイコン BASIC Magazine 1990年12月号で発表されたミ
ュージックドライバソフト 「NAGDRVj についての,読
者からの質問に答えている。——永田英哉,マイコン B
ASIC Magazine, I 月号, 88-89pp.
►誌上公開質問状
X-BASIC で 64KB を超える ADPCM の録音のやリ方は?
——多田太郎,マイコン BASIC Magazine, 丨月号, 92p.
► NEW PRODUCTS
グラフィックソフト 「CANVAS PRO-68K」 の紹介。一
1集部,マイコン BASIC Magazine, I月号, 95p.
►ブラディオン
宇宙船を操って相手をやっつける。I〜2人用対戦シ
ューテイング。——片岸健一,マイコン BASIC Magazine,
I 月号,158- 159pp.
► MENTAL POWER
向かってくる壁を左右に避けて進み,決められた数の
壁をよけると次のステージへ。ドライブゲーム。——高
橋秀之,マイコン BASIC Magazine, I月号,160 -162pp.
► UP AND DOWN
海底で潜水艦を動かし,お金を取る。——永井崇博,
マイコン BASIC Magazine, 丨月号, I63p.
► WGP 〜 Name Entry 〜
タイトーのゲームミュージック•プログラム。-西
島淳 一 ,マイコン BASIC Magazine, I月号, I83p.
► ATMIC R0B0-KID 〜メインテーマ〜
ゲームミュージックプログラム。要 NAGDRV。 ——あ
んど,マイコン BASIC Magazine, 丨月号,丨 87- 丨 89pp.
► FINAL LAP2 〜 EndingA 〜
ナムコのゲームミュージックプログラム。 要 NAGDRV。
- Hideya Nagata , マイコン BASIC Magazine, I 月号,
190- 194pp.
►チヤレンジ!! アドベンチャー•ゲーム
「聞の血族 • 完結編」を,画面写真で紹介。一佐久
間亮介,マイコン BASIC Magazine, I月号,221 -223pp.
►ソル•フイース
シューティング「ソル*フィース」を紹介。-山下
章,マイコン BASIC Magazine, 丨月号,226 -227pp.
►ゲーム虎の穴
「X68000 はゲーセン移植がすごい j と称してサイバ
リオン,グラナダなどのゲームと MIDI インタフェイスを
取り上げる。——編集部, ASCII, I月号,321 -336pp.
► AV STRASSE
FIXER Ver. 4. 0,ドローグラフィックライブラリなど
の市販ソフトと. K0-WIND0W, ファイル圧縮ツール LZ
Xなどの PDS を取り上げ,評価する。一仲田津宏•中
山進, ASCII, I 月号, 409-412pp.
► FREE SOFTWARE INDEX
PDS の中から目立ったものをリストアップ。 X68000 用
BGC, DRV, JSHWILD なども紹介されている。——編集
部, ASCII, I 月号,451 -455pp.
►光磁気ディスク CZ-6M0I をレポート
X68000 ユーザー待望の大容置メディア, M0 ディスク
の概要と使用感のレポート。値段,互換性,活用法,付
属ソフトなどについて詳細に取り扱っている。——高橋
雄一,マイコン,I月号,281 -285pp.
► X68000 マシン語入門
今月からは対話型ソフトの製作を行う。第I回はキー
ボードからの丨項目入カルーチンを作るところまで。一
—if 橋雄一,マイコン,I月号, 292-299pp.
►ハードディスク IPL
ハードディスクがついているけどフロッピーからの立
ち上げ機会が多い人に便利なフロッピー優先の IPL プロ
グラム。-市原昌文, I/O, I月号, 172-179pp.
► DELBAK2
ソースなどのバックアップファイルをまとめて消去す
るプログラム。—— L&M, I/O, I月号,205 -206pp.
► GAME BOX
アトミック•ロボキッド,ナイアスについて批評をす
る。——吉沢正敏•牛島健雄. I/O, I月号, I32-I33pp.
► SOFT BOX
シャープから発売された CANVAS PRO-68K で, ドロー
ツールの 仕組みから絵の害き方.使い道などについて紹
介する。——伊藤ゆう, I/O, I月号, 2I0-2IIPP.
ポケコン
PC-E500
► A 丌 ACK BALL
ボールを相手に当ててやっつける。——町野稔,マィ
コン BASIC Magazine, I 月号,166- 167pp.
PC E500PJ
►誌上公開質問状
「//」や 「flj といった記号を表示するには?一 Akiko,
マイコン BASIC Magazine, I 月号,9 1 -92pp.
PC-E500/PC-G801
►ポケコン Q & A
PC-E500 での KEY0 の使い方や乱数の発生法, PC-G80I
でのダンジョンマップデータの展開方法などの質問につ
いて答える。——編集部,ボケコンジャーナル,I月号,
82p.
PC-E500/E550/1480U/1490U
►はみだしゲーム講座
仮想 VRAM を使った背景の処理の方法について説明す
る。——編集部,ボケコンジャーナル,丨月号, 87p.
► FRUITS FIELDS
幻の秘宝「ふるうつ j を集めて回るパズルゲーム——
r.emoo, ボケコンジャーナル,I月号,13 -20pp.
► 2し • PY0NK0 !
穴に落ちないように左から右へ跳ぶアクションゲーム。
——せとけん,ボケコンジャーナル,丨月号, 48p.
幻想としての文明
ニッボンの終焉や縄文式思考云々に次ぐ,栗本
慎一郎教授の一般人向け啓蒙書である。氏がいまま
で書いてきたさまざまな論理や事象を中心に時事
ネタを交えて述べた害であり,学術書ではない。
「文明の旋律理論は,物的構造がすべてであると
いう誤った理論を完全に廃止する。たとえば,餓
えた者は立ち上がり,豊かな者は不満を持たない
というような『理論』はもう捨て去るべきことを
主張する j 本だ。 ( K )
栗本慎一郎著講談社刊 003(3945)111 1 四六
版200ページ1,300円
電脳と頭脳
原題を訳すと,「アイデアと情報 J 。 人間の知
能とコンピュータのもたらす記号処理を分離し,
人間がコンピュータに過剰に期待したり,恐れた
りせずにつきあっていけるよう書かれた本である。
頭脳はアイデアを生み出すことができるが,電脳
にはできない。本書はそれを骨子に,コンピュー
タ テクノロジーの 概念とそれと正しくつきあうた
めの知識や知恵を平易に解説している。 ( K )
アーノ ウ•ペンジアス著岡和夫訳 TBS プリ
タニカ刊 003(3238)571 1 四六版266ページ
2, 000円
書籍の価格は消費税込みです
FILES Oh ! X 161
UESTIOINJ
INISAA^ER
X - BASIC でゲームプログラム
を組んでいます0スプライトと
BG を使っているのですが , BG
を画面にしきつめてしまうとテキストが見
えなくなってしまいます0スコア表示もし
たいし,実行中にブレイクキーを押したり
エラーが出て止まってしまってもどこで止
まったかもエラーの内容も見えないので非
常にうざったいのです。
どうにかして BG を使いながらテキスト
を見られるようにしたいのですが,そうい
うことはできないものなのでしょうか。
神奈川県富良圭介
通常 X - BASIC では画面につい
てはスプライト ( BG ), テキス
卜,グラフィックの順に優先順
位が決まっていて, BG がしきつめられてい
ると BG (スプライト画面)の裏にテキスト
の表示が隠れてしまつて表示することがで
きません。
ですが X 68000 は実はマシン語レベル
ではその優先順位が変えられるようになつ
ています 0 プログラム中は ctrl + D を押し
て画面を初期化するというのがふつうです
が,この際ですから画面の優先順位を変え
る拡張関数を作ってしまいましよう。
X 68000 の画像は専用のビデオコントロ
ーラによって複数の画面を合成して表示デ
ータをドット単位に送り出しています。ア
ドレスでいうと E 8240 0 H 〜 E 8260 0 H がそう
でここにいろいろな数値を書き込むことで
テキスト/グラフ ィック 表示の ON / OFF を
行ったりその優先順位を決定することがで
きるようになっているのです。そして
E 82500„番地がその優先順位を決定する1/
0でここに数値を書き込むことでテキスト
をスプライト画面の上に表示させるように
します。
E 8250 0 H には初期状態では2進数で表
現すると次のようなデータが書き込まれて
います。
00 00 0110
このうち上位2ビットは無意味,次の2
ビットがスプライト画面の優先順位 ( 0番
目。つまり一番上 h 次がテキスト (1 番目)
でグラフィック (2 番目)という内容にな
っているのです。ここを,
0010 00 01
と書き直すことで画面の優先順位をテキス
卜,グラフィック,スプライト ( BG 含む)
という順番にすることができるわけです。
ということでリスト1がそのサンプルで
す。 asx , lk . x でアセンブル,リンクして作|
成された. X ファイルを . fnc という拡張子
にリネームして BASIC が入っているディ
レクトリに転送します。
次に BASIC.CNF というコンフィギユレ
ーシヨンフアイルに,
FUNC =ファイル名
という1行を追加してください。これで
txtup () 関数力 5 ' X - BASIC に追加されます。
この関数は引数に0を入力するとテキスト
力 5 ' BG の上に,それ以外の数値で BG がテキ
ストの上に表示されるようになります。
ビデオ コントローラに 画面の優先順位を
設定する数値を入力する際に注意しなくて
はならないのは異なる画面(テキスト,グ
ラフィック,スプライト画面)にそれぞれ
違う数値を入れなくてはいけない(つまり
複数の画面に同じ順位をつけてはいけな
い)ということです。そのため ユーザー が
変な数値を入れないようにこのプログラム
ではテキストを上にあげるだけになってい
ますが,67/72行目の数値を変えるだけでグ
ラ フィックを一番上にしたりスプライトを
一番下にしたりといろいろと画面の設定を
変えることができます。プログラム中にい
ろいろと コメント も残しておきましたので
■ J スト
1
♦テキ
スト
VRAM の優先表示
42
txtup_par :
2
* By
DE
1990/11/23
43
dc.w $02
* 引き
3
» .include locscall.mac
44
dc.w $ffff
本
4
45
5
本 Information Table
46
本
EXEC TAble
6
.text
47
F_exec :
7
• dc
.1
F_init
48
do*1 txtup^func
8
• dc
•1
F_run
4 9
9
.dc
•1
F_end
50
• even
10
• dc
.1
F^exit
51
11
• dc
.1
F_break
52
本
エントリ
12
.dc
.1
F_ctrlD
53
tx
tup_func :
13
.dc
.1
F_dmy1
51
t s t• l 12(sp)
14
.dc
.1
F_dmy2
55
bne gotxtdn
15
.dc
.1
F token
56
bsr txtupset
16
• dc
.1
F^parTbl
57
bra retfunc
17
.dc
•1
F_exec
58
^ot jctdn :
18
• dc
.1
0,0,0,0,0
59
bsr txtdnset
19
60
retfunc :
20
F 一 init
B1
c J r.1 d0
21
F_run:
62
rts
22
F_end:
63
23
F exit
64
檐先 m 位セット
24
F break
65
*
(テ
キ
25
F ctrlD:
66
txtupset :
26
F_dmy1
67
move•w 01
10.
27
F_dmy2
68
bra writeit
2B
rts
69
29
70
本
( スプライト ® 先)
30
i TOKEN
table
71
txtdnset :
31
F token :
72
move.w #%00 00
J ) し
10-
32
dc.
b
1 txtup 1 ,0
73
33
dc.
b
0
74
本
値を窬き込む
本 param table
F^parTbl :
do.i txtup_par
本 parameter ID table
後先)
writeit:
move.1 #$e82500,a 1
IOCS _B_>POKE
rts
• end
ぜひ各自好きなように変更して見てくださ
い0
また,1月号で ディスクに 収録されてい
た MUSICDRV.X 用の MUSIC 1 .FNC には,
画面の優先順位を変更する関数も入ってい
ます0詳しくはドキュメントをお読みくだ
さい。
12月号 Q & A , 179ページのバッ
チファイルを入力して起動した
ら,登録してあるファンクシヨ
ンキーがクリアされてしまい,再登録しな
ければなりませんでした。なぜでしょうか。
またクリアしないバッチファイルにするに
は,どうすればよいのでしょうか。あと,
巳ドライブにある OPM ファイルを連続演
奏するバッチファイルを作ろうといろいろ
やってみましたが,うまくいきませんでし
た 0 曲が終了したことを返すコマンド,あ
るいは エラーコー ドを返すツ ー ルがないも
のでしょうか,ご教示ください0
また,さらに B ドライブのファイルをラ
ンダム演奏するにはどうしたらよいのでし
ょうか。使用機種は X 68000 ACE です〇
宮城県佐藤公夫
162 Oh! X 1991.2.
UhfXI 質問箱
たくさん質問がありますが順番
に答えていきましょう。まず最
初の質問ですが,これは佐藤さ
んが本文の説明をよく読んでいないんだと
思います。ほかにも何人かの方からそうい
った質問を受けましたが,編集室で動作を
再確認したところ,ファンクションキーが
クリァされるといった症状は見られません
でした。12月号をよく読んで再挑戦してみ
てください。ぉそらく, “_ exit ( i )’’ と書き換
えるところを “ b _ exit ( i )” としているんだと
思います。
次の質問は,バッチファイルの中で曲の
終了を教えてくれるコマンドがあるのか?
ということです力 ? ,そのようなコマンドは
ありません。しかし,あきらめるのはまだ
早いですよ。曲の終了を返すコマンドはあ
りませんが,指定したチャンネルが演奏中
かどうか調べる命令が X - BASIC にありま
す。これが“ m _ stat ” です 0 マニュアルに
あるように引数を省略すると,チャンネル
1〜8が演奏中かどうか調べてくれます。
このときの戻り値は,ビット〇〜ビット
7がチヤンネル1〜8に対応していて,0
で停止中,1で演奏中を示します。つまり,
戻り値が0なら曲が演奏されていないとい
うことです。簡単な実験をしてみましょう。
10 m _ init ()
20 m _ trk ( l ,” o 4 cdefgab < c ”)
30 m _ play ()
40 repeat
50 until m stat ( )=0
60 print ’’ 演奏が終了しました”
70 end
見てのとおり「ドレミ ファ ソラシド」を
鳴らすだけのつまらないプログラムです力 5 ,
実行させると演奏が終了してからメッセー
ジを表示するようになっています。仕桂卜け
は40行からの repeat 〜 until です。 m_stat
() の戻り値が0(つまり全チヤンネルが停
止)になるまで,ループを繰り返すように
してあるのです。
これで演奏の終了判定のやり方がわかり
ました力 5 ',このままではバッチファイルか
ら使えません。そこでまたまた C コンパイ
ラを使うことにしましよう。下のプログラ
ムを X - BASIC から入力してください。フ
アイル名は wait . bas としましよう。
10 repeat
20 if inkey $(0) く〉”” then break
30 until m _ stat ( )=0
40 end
ループの中でキー入力を見るように変更
したので (20 行),演奏途中でもなにかキー
を押せばループを抜けるようになっていま
す。次に BC . X で C 言語のプログラムに変換
したら,エディタに読み込んで“ b _ init ()”
という行•を削除して, “ b _ exit (〇厂を “_exit
(0)” と書き換えてください。こうしたら,
cc wait.c /W
として コンパイル します。 オプションの 7
w ” は必ず大文字で^*定してください。こ
れで wait . x が生成されます。
echo off
copy b : a.opm opm
wait
copy bib.opm opm
wait
echo on
というようなノぐッチファイルを作ってみて
ください。 a . opm の演奏が終了するか,なに
かキーを押すと, b . opm の演奏が始まるは
ずです〇これで OPM ファイルの連続演奏が
できるようになりました。しかし,上のバ
ッチファイルだと OPM ファイルを追加し
たときに,バッチファイルを書き換える必
要があります。それでは面倒なので,
ecno off
for %a in ( b : 氺. opm ) do copy b:%a
opm | | wait
echo on
としておけば バ ッチ ファイルを 書き換える
必要はありません。上の“ | |”は BAS
I C の“:”のようなもので,1行に複数
の コマンドを 列挙するときに使うものです
(“ | ”は シフ トキーを押しながら を
押して入力します)。
もしも, OPM ファイル自体に手を加える
ことも辞さないならば,もっと簡単な方法
もあります。 OPM ファイルの最後, “( p )”
となっている部分の次に “( w )” を加えれば
いいのです。これは演奏が終了するまでウ
エイトをかける命令です。これなら,
COPY *• OPM OPM
だけで全曲演奏ができます。ただし,変更
した OPM ファイルはバックグランド実行
できなくなりますので注意してください。
それと BASIC などでプログラムを作り,
コマンド化すればランダム演奏もできない
ことはないはずです。ぜひ佐藤さん自身で
考えてみてください。
最後に OPM フアイルを OPM ドライバに
コピーするときに注意しておきたいことを
書いて終わりにします。普通 OPM ドライバ
を登録するシステムの CONnG . SYS は,
DEVICE =¥ SYS ¥ OPMDRV.X
のようになっていると思います力 ? ,このと
き確保される演奏用ノぐッファは約64 K バイ
卜です。ですから最近では11月号に掲敕さ
れた 「 GUSH 」 のように,1トラックに10
K バイトとるようなプログラムだと, X -
BASIC が「外部関数エラーです。メモリー
確保できません」とエラーメッセージを出
すでしよう。 X - BASIC は親切にメモリカ ?
確保できなかったことを教えてくれますが,
OPM ドライバに泊:接コピーして演奏する
場合にはそんなメッセージも表示されませ
ん。メモリが確保できなくても演奏はされ
ます力' 原曲を忠実に再現してはいないの
です。そこで演奏用バッファを多めに取っ
ておけばいいのですが,それには,
DEVICE =¥ SYS ¥ OPMDRV.X #80
のように#に続けて数字を書きます。上の例
だと演奏用バッファに 80 K バイト確保され
ます。そんなことは知らずに COPY 〜 OPM
していた人もいると思うので,思い当たる
フシのある人は, CONFIG . SYS の設定内容
を確認してみることをお勧めします。
(影山裕昭)
質問にお答えします
日ごろ疑問に思っていること,どんなこ
とでも結構です。どんどんお便りください。
難問,奇問,編集室が総力を上げてお答え
いたします。ただし,お寄せいただいてい
るものの中には,マニュアルを読めばすぐ
に回答が得られるようなものも多々ありま
す。最低限,マニュアルは熟読しておきま
しょう。質問はなるべく具体的に機種名,
システム構成,必要なら図も入れてこと細
かに書いてください。また,返信用切手同封
の質問をよく受けますが,原則として,質
問には本誌上でお答えすることになってい
ますのでご了承ください。なお,質問の内
客について,直接問い合わせることもあり
ますので,電話番号も明記してくださいね。
宛先:〒108東京都港区高輪 2-19-13
NS 高輪ビル
ソフトバンク株式会社出版部
「 Oh ! X 質問箱」係
Oh ! X 質問箱 163
THE EDITOR.
強していいんですから,存分にやってく
ださい。試験が始まってから,参考害見
たりしたらだめですよ。
だ。 I 月30日とは何を考えているんだか。とは
いっても,せっかくの修学旅行で丨日中大阪日
本橋に行く私のグループも何を考えているんだ
かわからんが(先生があまりにもうるさいので
一応大阪城にもよる予定)。
清水勲 (16) 神奈川県
関東のほうはやっぱり修学旅行といえば大
阪,京都になるんでしようね。最近はお金
持ちの学校になると,海外に行くのも当た
り前になっているようですけど。
♦ 丨校すベって腹いせに X 68000で遊んだ。メモ
リをダンプすると“浪"なんて書いてある。ム
カーツ, X 68000 までバカにしてやがる。次の日
も丨校すべっていた。受験の日に母さんが「へ
ビが落ちる夢」を見たそうな。やっぱり,"浪"
なのだろうか(実話)。渡辺篤志 (17) 滋賀県
しかし,お母さんも受験のの朝に「へビ
が落ちる夢を見たわよ J とは n が裂けても
言えなかったでしようね。
♦少し前のことだが,学校で C 言語の講習があ
るというので行ってみた。もちろん, XC ではな
く PC -980 I 上で動いている TURBO C だった。おも
むろにプログラムを打ち込み SAVE しようとし
た。データディスクも確認し,実行した。しか
し, SAVE できない。しばらく悩んでいると友達
が ライ ト プロテクトになっているといってくれ
た。そうです, 3. 5インチディスクではプロテク
ト ノッチが開いていると,ブロテク トが かかる
のです ね。 5インチしか使わないから知らなか
った。 浅沼博明 (20) 北海道
3. 5インチデイスタのプロテクトノッチは
いいですよね。5インチもあんなふうにで
きないのかなあ。
♦ただいま卒業研究でシミュレーションプログ
ラムを暇プロ的に作っています。そういう理由
で「清水和人流プログラミング道場」を心待ち
にし,「シミュレーションプログラミング入門」
の今後の活躍に期待している今日この頃です。
藤戸正道 (22) 東京都
卒業研究ですか。いまのうちは暇プロ的に
やっていても,せっぱつまってくるとそう
もいかないでしようね。
♦バスの 中で Oh ! X を読んでいて,友人に「この
本, 560円の価値あるの? なんか内容が少なそ
う」などと言われた。僕は猛烈に悲しかった。
こんなにためになる本はないと思うのに。
佐竹勝博 (16) 香川県
う一ん,それは猛烈に悲しい。
♦突然ですが,私の通っている学校には無数に
ある PC -980 I , ポツポツとあるワークステーシ
ョンに「こそっ」と隠れるように備品票の つい
た X 68000 PR 0 II - HD があるのです。_時はサ
イバースティックもあったのですが,教授に送
り返させられたそうです。 I 階下にあるその研
究室では 「 R - TYPE 」 マシンと化した X 68000の姿
が21インチのディスプレイと共にあったのです
が,最近は修論のために使われているみたいで
す。12月ですからね……。ところで,私は現在
48時間以上起きているのですが眠くならないの
です。どうしたことだ . ,へこへこ。
折田正栄 (22) 福岡県
っいに,人類永遠の課題といわれる眠らな
い術を身にっけたのでしようか。
♦誕生日に両親に髭剃り(電動のやつ)をもら
いました。いままでは手で毎朝ジョリジョリや
つていたのですが,これはいいですねえ。ズー
ムイン朝を見ながらブイーンと剃っています。
FROM READERS
さて,いよいよ大詰め。何がって?決
まっているじゃないですか。ね,受験生
の皆さん。試験が始まるまでは自由に勉
♦ゆ,雪が降らない。このままじゃ,スキーに
行けない。夏にどこにも行かずにバイトしたの
に。こうなったら,スキーへ行くのを I 回やめ
て , C compiler PRO -68 K ver .2.0 を買っちゃおう
かな。ところで,いまうちの SX - WIND 0 W では2
種類の暁子さんが走っている。旧バージョンの
SX - WIND 0 W を持っているそこのあなた,新しい
名前にして同じディスクに入れてあげて , Mac
と X 68000の両方を楽しみましよう。しかし,マ
ウスカーソルがあんな形になるとは……(暁子
さんのウィンドウの中で骨付き肉や魚になって
しまうとはね)。 大内泰司 (21) 千葉県
スキーと C compiler PRO-68K ver.2. 0 を
天秤にかけるというのも,なかなか妙な感
じですね。
♦ 12 月2日,日本人初の宇宙飛行士として TBS
の秋山さんが宇宙へ行った。しかし,その第一
声がすごかった。「これ,本番ですか? j (さす
が, TBS 関係者だけのことはある)。
神生直敏 (21) 栃木県
しかし,宇笛に行けるというのは本当にう
らやましいですね。虫歯があるとだめらし
いからなあ。
♦ 4 歳の孫が来ると, X 68000 は孫のオモチヤと
なり,私は助手にされてしまいます。 Z’sSTAFF
でのお絵描きは得意中の得意,源平討魔伝,ポ
ピュラスにのめり込んでいるという,末恐ろし
い男の子です。孫のために(口実 ) CANVAS PRO
-68 K 購入の予定です。 中野譲 (64) 兵庫県
r 係のため j といいわけすれば,なんでも
H えそうな気がしますね。でも,誰にいい
わけするのかなあ。やっぱり,奥さん?
♦いつもごくろうさまです。ぼくたち中学生に
もわかりやすい記事などをお願いします。
遠藤塁 (14) 岩手県
いやあ,なんかよくわからないけど,すが
すがしいハガキだなあ。
♦まったく,高校での修学旅行はどこへ行くの
かと思えば,ワンパターンの京都,岡山。ま,
これはしかたがないとしても問題はいついくか
‘0^0 夢
164 Oh!X 1991.2.
手でやるよりずっと早いですね。しかし,人間
はこうやって文明の利器の中に埋もれていくの
ですね。ときどきは手で剃ろうかな。あ,プレ
ゼントしてもらったのはブラウンのやつです。
「おはようございます。ブラウンです!」のあ
れです。 藤田勝也 (22) 神奈川県
文明の利器はなんといっても便利だし,時
間の節約にもなりますからね。埋もれてし
まってもいいんじゃないでしようか。
♦ メジロマックイーン,キヨウェイタップ,パ
ッシングショット,単勝の3連勝は我ながらす
ごいです。しかも, I 点勝負ですよ。でも,千
円ですからね。あまり運を使うとあとが怖いし,
有馬記念はじっとしておくことにしましよう。
天皇賞のバンプーは本当に残念でした。ホワイ
トストーンがジャパンカップで勝ったら , C
compiler PRO -68 K ver .2.0 に化けるかも。
藤沢直樹 (20) 大阪府
競馬の馬の名前ってなんか変。
♦うちの高校の合唱部が都代表となり,北海道
で行われた全国大会に行ってきました(全国" 2
位")。コンピュータルームのとなりが音楽室な
ので毎日全国レベルの歌を聞かされています。
いまでは歌も覚えてしまい,一緒に歌っていま
す。でも,プログラムを打っているときはうる
さくてむかつきます。そして,なにを隠そうう
ちのクラブも D 6 GA のコンクールで入選 C 88 と
セ9年)しているんですよ,これが。
市川徳明 (17) 東京都
コンピュータで演奏させて,それに合わせ
て合唱してもらうというのもいいんじゃな
い?
♦この前の夏休みのことであるが,私はアルバ
イトで地下探査アシスタントというものがあっ
たのでやってみた。しかし,実際にはなんと自
衛隊の演習場で不発弾探しをやらされた。しか
も,そこはハチは飛ぶわ,マムシは出るわ,挙
げ句の果てにはクマも出たことがあるというこ
とを聞かされたのであった。まったく,こんな
バイトをした人は数少ないであろう。
山本潮 (21) 宮城県
クマまで出るとは。自衛隊の人もときどき
はクマに遭遇するのかな c
♦日本サンライズはサンライズに。日本ソフト
バンクはソフトバンクに。でも,もし日本食堂
が食堂になるとなんか変!?
黒武者健一 (21) 神奈川県
変というよりも,無茶苦茶情けない。絶対
やらないでしよけど,やったら面白いのに
なぁ。
♦最近見かけないので,てっきり事故って入院
でもしているのかと思っていましたが,元気だ
ったんですね,華門さん。私は先日,自転車で
山道を下っていて,カーブを曲がり切れずに崖
(といっても 4 m ぐらい)から落っこちました。
幸い下の地面が柔らかかったので,肩がはずれ
たほかは打撲だけですみました。編集部の皆さ
んも運転するときは気をつけてください(それ
にしても落ちていくときのあの感覚は病みつき
になりそうである)。 中村学 (19) 石川県
4 m だと結構落ちるまでの時間が長いかも
しれない。いままでの人生が走馬灯のよう
に浮かばなかったでしようか。
♦昔々の話です。私は Oh ! MZ に掲載されている
ブログラムを X 丨で打ち込もうと電源を入れま
した。そのとたんに,なぜか私はサザエさんが
見たくてたまらなくなりました。うまい具合に
あと30分でサザエさんが始まる時間だったので,
私は X I のタイマーをセットしてから BASIC を
立ち上げました。で,問題の時間に画面は切り
替わるはずだったんですが……,なぜか画面は
切り替わらずに真っ青に染まった X I の画面が
映っているのみでした。ああ,哀れ X 丨は修理に
出されたのでした。それにしても恐るべしサザ
エさん。不老不死はダテじやない(笑)。
表健一 (18) 石川県
「なぜかサザエさんが見たくてたまらなく
なりました」というのはわかる気がするな
ぁ。
♦私は仕事場への片道 35 km ぐらいを愛車のゴ
キブリ CITY 子ちやんで通勤しているのですが,
最近ある交差点の信号サイクルが変わったらし
くて,それまでは大渋滞道路だったのがスイス
イ走れるようになって喜んでいます。55分ぐら
いかかっていたのが45分で到着できるようにな
りました。どうやら,香川県警では試行錯誤を
繰り返しつつ信号サイクルを決めているようで
す。12月号の「シミュレーションプログラミン
グ入門」を県警の人に読ませたいものだ。 Oh ! X の
読者の中には警察に勤めている人もいるのかな
あ。ちなみに,私は検察事務官です。
長谷川聖 (26) 香川県
そういう試行錯誤はどんどんやってほしい
ですね。なにしろ渋滞はイライラしますか
らね。
♦障害者のコミュニケーション手段として,32
個のシンボル、を表示し,ひとつのキー操作で並
ベ替えていくプログラムを X - BASIC で作ってい
ます。チンタラやっているので完成はまだまだ
でしよう。……といっている間に PC -9801と
Macintosh に包囲されてしまいました(島田療育
園リハビリ部の中の話)。しかし,難波のシャー
プは単機でも生きています。絶対に。
深栖嘉哉 (34) 東京都
最近こういう分野へのコンピュータの利用
というのも盛んになってきているようです
が,いいことですよね。
♦出そう出そうと思っていてアンケートハガキ
を2力月分ポストに入れられなかった。年寄り
には時間が立つのが早い。ますます C compiler
PRO -68 Kver .2.0 がほしい!しかし,私には購
入できない。いま45,000円は出せないのです。
この年になって免許のために自動車学校に行く
なんて。ところで,古い話ですが娘の学校の文
化祭に行ったら,昔はどこでもあった飛行機研
究会や鉄道研究会がなくサビシィ。しかし,そ
の代わりにパソコンクラブでは MZ - 1500を並べ
てゲームをしていた。横山紘一 (45) 埼玉県
鉄道研究会は結構まだありそうですけどね。
飛行機研究会もチラホラとはあるんじやな
いでしょうか。
♦つ,ついに私の住むアパートに地上げ屋が来
た。幸いにして話し合いでケリがつき,来年3
月までに出ていくことになった。他人事と思っ
ていたことが我が身に起こるなんて思ってもみ
ませんでした。 Oh ! X の編集部の皆さんも風邪と
地上げ屋に気をつけてお仕事がんばってくださ
い(そのうちにソフトバンクのビルも……)〇
川田剛 (18) 大阪府
ここにはまさか地上げ屋は来ないでしょう
けどねえ。しかし,自宅のアパートとかに
地上げ屋が来たら結構ビビルだろうなあ。
♦それにしても, X 68000オリジナルグッズって
のは一体なんなんでしょうね。キャラクターグ
ッズなどというのはよく聞くけど,この場合単
に X 68000の文字が入っているだけじやないで
すか。もっとも,ライターにはツタンカーメン
の絵が彫られているが,古代エジプトのファラ
才のキャラクターグッズというのは聞いたこと
がないし,前13世紀に彼がアモン=ラー信仰復
活とテーベ復都を記念して自分のグッズを作っ
たとも思えない。それでもやっぱりほしくなっ
てしまう。このようなものを作るなんて,目の
つけどころがシャープだと思う。
坂本康 (18) 秋田県
STUDIO X 165
あれって結構人気あるんですよね。それほ
ど皆さん X 68000 を愛しているということ
の表れでしょうか。
♦フロ ッピーディスクの磁性面を太陽に透かし
てみると,かつて小学校の理科の実験で黒下敷
きを使ってみたのと同じような効果があるでは
ないか。しかも,メーカーによって色が違う(マ
クセルのは赤,コニカのはだいだいだった)。う
一ん, 小学校が懐かしい。宗石茂 (17) 宮崎県
大事なフロッピーディスタでやるのはなん
となく怖いから,今度いらないディスクで
やってみようっと。
♦最近 ,X 68000に電源を入れるのも面倒。ゲー
ムソフトがハードディスクにインストールでき
るようになれば,この際無理をしてでもハード
ディスクを買いたいが。パソコンゲームはこう
いった点で手軽でない。起動時間が長い。プロ
テクトチェックでさらに長い。ゲーム中ディス
クアクセスで待たされる。しかたないことだが。
その点,ファミコンだとかは ROM 力一トリッジ
を差し込んで即プレイできるし,パソコン本体
のように大きくないのでコタツの中に入れてブ
レイできたりとかする。まあ,グラフィックと
かはパソコンとは比較できないが。
三宅宏典 (18) 岡山県
やっぱり手経さという点ではファミコンな
どの ゲーム 機にはかないませんよね。
♦文化祭でパンドをやった。もちろん,私はキ
ーボード。オルガンやストリングスでコードを
白玉で弾いていただけだが,いつもバソコンで
機械的な音楽ばかり聴いている私にとって,人
間的なノリはとてもいい刺激になりました。
P . S . メンバー紹介のときになにかパフォーマ
ンスをやれというので,ゼビウスを弾いたらバ
カウヶしました。 干葉浩貴 (18) 宮城県
ほかの人と演奏するといろいろ勉強にもな
りますし,いいことですよね。
♦ハードディスクってどのくらいの振動でクラ
ッシュするんですかねえ? 私の家の前の道路
は穴が空いていて,そのうえ制限速度 20 km にも
かかわらず大型トラックが 60 km ぐらいで通る
ので,震度丨ぐらいの揺れがするんですよ。こ
れじゃあ,買っても使えないかも(もっとも,
メモリが先になると思うけど)。
高橋定元 (18) 千葉県
デイスクを読みにいっているときと力 1 に摇
れがあると,やっぱりやばそうですよね。
しかし,そんなこと考えているよりも先に
道路の穴を直してもらったはうがいいので
はないでしようか。
♦我が家はインドアゲームを中心に毎晚毎晚わ
いわいがやがや。最近ではパズルに凝っていま
す。パズルといっても範囲が広く一時はジグソ
—パズルに勢•中していました。この頃,パズル
雑誌(クロスワードを中心にしたもの)の創刊
が続いています。いま,静かなブームでしよう
か。
P . S.X 68000でパズルを解くソフトを作って
います(あんまり意味ないか)。
松下博 (52) 愛知県
適度に頭を使うというのはいいことだし,
なんといっても気持ちがいいですもんね。
あんまり難しいものになるとイライラしち
やうんですけどね。
♦「 JR 東日本がスキー場を作りました」とか。
民営化するとこんなにも変わってしまうのかと
驚きました。民営化したために我が家のすぐ近
くの新駅設置の話が速いところへいってしまっ
たというのに。 瀧田智康 (22) 埼玉県
こんなところにしわ寄せが……。
♦いつも I 日では読み切れないような内容の
Oh ! X の編集部の皆様,こんにちは。本屋へ行くと
よく思うんですが,この Oh ! X に連載された(され
ている)記事が単行本になっていないのはなぜ
ですか? 違う雑誌のやつはよく見かけるのに
……。ぜひ出してください。そういうわけでこ
れからも“マニアック"な内容の Oh ! X にしてくだ
さい。 大栗登 (17) 愛知県
連戟が単行本になっているものもあります
よ。最近では, 「 X 68000 マシン語プロダラ
ミング」が出たので,どうぞよろしく。
♦丨年前に X 68000 を買うまでは,同じ県内にあ
る矢板の工場を意識することはなかった。そも
そも,シャープという会社自体を二流としか見
ていなかった。しかし,いまでは矢板の工場を
ソンケーの眼差しで見つめ ,「X 68000は栃木生
まれのパソコンなんだせ」と友人に自信を持っ
て勧めています。 SX - WINDOW の First - Class - Te .
chnorogy も宇都宮にあることを知り,ミョーな
感慨に浸っています。吉葉勝幸 (19) 栃木県
心の持ちようで,同じものでも違って見え
るものですよね。
♦私は消防署に勤務していますが,先日 0 A 機器
調査ということで,全国の消防署で使用されて
いるパソコン機種とか,使用内容といった調査
がありました。その中でパソコン機種一覧表と
いうものがありました。該当する機種のところ
に九印をつけるようになっていたのですが,な
んと X 68000の名前があるではあるまいか。はた
して,全国の消防署の中で X 68000を使用してい
る消防署がどれだけあるのか? あれはすばら
しい!消防署だから昼夜かまわず仕事してい
るふりをして遊べるではないか。うらやましい。
私も職場でも X 68000の顔を見たい。
内匠勇二 (31) 和歌山県
確かに,使っているところが果たしてある
のかなという感じはしますよね。結果がわ
かれば教えてほしいですね。もちろん,そ
の用途も。
♦全自動洗灌機を見ていて思ったのだが,いま
の日本の科学力⑺をもってすれば,全自動炊飯
器なんてのが出てもいいと思う。入れた米の重
さと新米,古米かの区別を選んでおけば勝手に
米を洗って指定の時間になると炊ける。そうそ
う,もちろんファジイで炊いてね。
伴哲也 (19) 京都府
それはいい。米を洗うのは面倒臭いですか
らね。冬は水が冷たいし。洗うときはやっ
ぱり回転するんだろうか。
♦ II 月21日,そうスーパーファミコンの発売日
である。この日,私の友人である R 君は後輩が
並ばずに買えたというスーパーファミコン (My
first SONY のような箱に入っていた)のパッドの
フタを開けて,回路図を引いたのだ。中には I
本のジャンパー線も見られず,ミツミの内職の
おばちゃんがリード線を挟みながらネジを締め
たのがわかった(笑)。友人は「これでジョイス
テイックが作れる j といっていたが. L , R ボタン
はたぶん前代未聞のフットスイッチになりそう
である。本体はオーナーの許しが得られなかっ
たので断念。しかし,それにしても F - ZER 0 はハ
ードの力をまざまざと見せつけてくれた。
小川純一 (17) 埼玉県
並ばずに買えたとはなんと幸運な。まだ,
本体を見たこともないというのに。まあ,
別にほしくもないからいいもんね(負けお
しみ)。
♦へっへっへ。 やっと金がたまったぜ。これで
I M バイト增設 RAM が手に入る……,と思った
んだけれど今日はスーパーファミコンの発売日
ではないか。すまん ,X 68000よ! もう半年待
ってくれ。 福永啓二 (17) 広島県
こういう具合に,スーパーファミコンの話
題というのも結構多かったのですが,12月
号のハガキで多かったのは“やはり”この
166 Oh! X 1991.2.
話題です。
♦ 12 月号を読むとカラーページにグラディウス
のようなゲームの画面写真が載っている 。X
68000のネメシス’90かと思い,よく見るとそれ
はグラディウス。正方形のような画面から FM
TOWNS 版グラディウスかと思ったが,記事に目
を移すと X は urbo 専用と書かれている。しかも,
デジタル8色で動きはまともだというからすご
い。やはり ,X Iturbo に不可能はない。きっとそ
のうちアフター バーナー も移植されることでし
ょう。 森山伸行 (19) 東京都
♦ぬうう 。 「THE USER’S WORKS 」。 最初に見た
とき「なんでいまさら X 68000 のグラディウス
を?」などと思った。スゴイ。ホントにこれこ
そ真の “ USER’S WORK " だ。 シャープの バソコ
ンって誰より6ユーザーに愛されているんだな
あ。 X 丨や MZ シリーズって幸せかも。ところで,
1989年10月号の原さん ,X IturboZ 専用シュー
ティングは? 高橋明 (20) 茨城県
♦「THE USER’S WORKS 」 を見たとき,感動の
あまり声も出ずふるえあがってしまった。いろ
いろな問題を抱えているが,ぜひ世に送り出し
てほしい作品であった。本当に X Iturbo には不
可能はないのであろうかと思わせるもの だ (グ
ラフィックだけでも)。いま,衰えてきている X
丨の灯を再びともすきっかけともなってほしい。
松尾保孝 (18) 奈良県
♦ X Iturbo でグラディウス,それも超美麗なグ
ラフィック。執着ともいえるほどまでのこだわ
り,オプション12個でも平気なプログラミング
テクを抱えて登場した。ぜひとも完成させてほ
しい。このような作品を見ていると,まだまだ
XI も捨てがたいですね。なんでもできそうな気
がします。私も大学にはいれたらなにか作ろう
と思います。改良版 X -700 もどきを使って……〇
ふっふっふ。 萩野友隆 (17) 京都府
♦す,すごすぎる……。同人ソフトなんて興味
ないもんね,なんて読み飛ばそうとしていたら,
「アレ」 ですものね。 「アマチュアの 鑑! よ
っ, 大将ニクイね っ, この!」という感じ⑺で
す。とにかく作者の横内君には「がんばって完
成してください」,そういってあげたいと思う22
歳の大学生なのでした。斎藤修 (22) 宮城県
♦ 12 月号をぺらぺらとめくって読んでいたら,
いきなりグラディウスの写真が載っていた。ゲ
ーム特集なのかなあとよく読んでみると,アマ
チュアプログラマが作った X Iturbo 用のグラデ
ィウスであった。本当にあのデジタル8色の X
Iturbo で作ったのかと疑うくらいだ。実際に動
いているところや BGM を聞いていないからわか
らないが,機会があればぜひプレイしてみたい
と思う。 X 68000 のグラディウスと見まちがえて
しまった。ノーマル X 丨でもできたらなあ……,
でもすごい。 大田哲矢 (18) 神奈川県
ここに敉せたのはほんの一部で,本当にす
ごい反響でした。まあ,あの出来を見れば
驚いたり感動したりするのは,当然のこと
といえば当然なんですが。横内君もこれを
読んで,またプログラミングに励むことで
しよう。
ほ'^各の掲示眠
•掲載ご希望の方は,官製ハガキに項目(売る•買う•氏名•年齢•連
絡方法…… ) を明記してお申し込みください。
•ソフトの売買,交換については,いっさい掲戤できません。
•取り引きについては当編集部では資任を負いかねます。
•応募者多数の場合,掲載できない場合もあります。
•紹介を希望されるサークルは必ず会誌の見本を送ってください。
仲間
★ X 68000でフォントの研究開発を行っている「夕
イブ•ラボ j では会員とスタッフを募集してい
ます。日本語版組 システム TeX などを中心に活
動しながら、不定期で ディスク 会報も発行して
います。62円切手同封のうえ、下記まで。〒910
福井県福井市渡町 358-4 平木敬太郎 (23)
★「NANNO CLUB PRO-68X 」 では、 X 68000 ユーザ
一を 対象に南野陽子 ファンを 募集。活動は SX-
WIND 0 W の アプリケーションの 配布、 パソコン
通信でのリアルタイム情報提供など。南野陽子
情報日本一宣言中です。申し込みは62円切手同
封のうえ封害で。〒332埼玉県川口市川口 6-5
-40 中銀マンション605武山智裕 (18)
|売リます
★ CZ -8 PK 9(24 ピン80析,付属品,箱あり)を3万
5千円 。X Iturbo テクニカルマニュアル(シヤー
プ監修 AZ ビシ コム刊)を5千円。 PC - E 200( ポ
ヶ コン, Z 80 CPU , 32 K バイト)を5千円。いずれ
も送料込み。連絡は往復ハガキでお願いします。
〒183東京都府中市多磨町卜 34-7 (株)ジャコ
ム多磨寮山口幸一 (24)
|買います
★シャーブカラーイメー ジユニット 「 IO -735 X 」 を
8万円ぐらいで。安い人優先です。オプション
( X 68000 用ケーブル等)をつけてくれる方は多
少値上げします。連絡は往復ハガキで。〒98卜
31宮城県仙台市泉区長命ヶ丘 6-6-12 石川太
朗 (15)
★熱転写 カラー 漢字プリンタ 「 CZ -8 PC 3」 を2万円
以内で(安価優先)。 RS -232 C , マウスボード 「CZ
-8 BM 2 j + マウス 「 CZ -8 NM 2」 を7千円前後で0
連絡は状態,付属品の有無,電話番号を明記の
うえ,往復ハガキで。〒319-01茨城県新治郡
八郷町東成井1690菱沼義博 (16)
★ X 68000 用数値演算プロセッサボード 「 CZ -6
BPlj を3万円前後で。プリンタ 「 CZ -8 PC 4」 4
万5千円前後で。どちらも取扱説明窨,付属品
ありのものを。連絡は希望価格を書いてハガキ
で。〒731-42広島県安芸郡熊野町柿追49長
石裕行 (21)
★ X 丨用フロッビーデイスクドライブ 「 CZ -503 F 」
か 「 CZ -502 F 」 を3万円以内で。漢字 ROM 「 CZ -
8 BK 2 j を5千円前後で。また, XI 用のプリンタ
を丨万円から丨万5千円で。完動品なら可。ど
れも送料込み。連絡はハガキで。〒065北海道
札幌市東区北 I 丨条東4 丁目荒井真公人 (18)
★カラーイメージユニット 「 CZ -6 VTI 」 を2万5千
円で。 アスキーの テクニカル データ ブックを定
価以上で。連絡はハガキで。 亍 923石川県小松
市飴屋町21紙山満 (17)
y くックナンバー
★ Oh ! Xl 990 年 I 、3、5月号広告などの切り抜き可。
定価で譲ってくださる方。送料はこちらで持ち
ますのでよろしく。連絡はハガキで。〒813福
岡県福岡市東区名岛 3-29-16 仁泉大輔 (19)
★ Oh ! X の1989年6月号を送料込み丨,500円で買い
ます。切り抜き不可。少々の汚れは可。連絡は
ハガキで。〒729-24広島県豊田郡安芸津町風
早 649-366 提岡真二 (17)
★ Oh ! MZ の1985年 I 、4、6〜9月号を送料込み各千
円で。切り抜き不可。連絡は往復ハガキで。気
長に待ちます。〒61丨京都府宇治市宇治蔭山55
番地 33 IA 榊卓也 (24)
★ Oh ! MZl 987 年5、6月号, Oh ! Xl 988 年7月号を送料
込み各1,500円で。切り抜き不可。連絡は往復ハ
ガキで。〒123東京都足立区江北 7-12-1-506
村松秀雄 (37)
STUDIO X 167
編篥室から
from E J 1
□RIVE ON
このコーナー では, 本誌年間モニタの方々の
ご意見を紹介しています。今月は12月号の内
容に関するレポートです。
• 「アナログジョイスティックの製作 j は参
考程度に,ということで割り切って読ませて
いただきました。
回路の規模も結構大きなものですし,普通
Z 80 を使うならシングルポードコンピュータ
を買ってきますしね。また, ROM ライタが必要
であることで,多くの人にとって非現実の世
界になってしまったでしようし。
あくまで「体験記 j であり,製作してもら
うことが目的ではないという意味では大成功
だと思います。リストだってダンプではなく
ソースで(ついでに ZEDA 用)であることもそ
の主旨に沿ったものであったといえるでしよ
う。時間の都合で私はまだこのような Z 80 を
使ったコントローラを作ったことはありませ
んが,いずれ作るときには大変參考になると
思います。
アナログスティックは,あのメカ部がネッ
クになっていままで製作できなかった人もい
たと思います。私もラジコンスティックの回
路をアレンジして,完全ハード版サイバース
ディックを考え,回路図まではできていたん
ですが,例のボリューム式のジョイスティッ
クが手に入らなかったことで計画を断念しま
した。 Apple II や VIC - 1001の時代には,日本橋
にもパドル用にと売っていたのですが,いま
はさすがになし。やむをえず親しいパーツ屋
の人に「メーカーさんに分けてもらってくだ
さい」とお願いする始末。入手しにくいパー
ツであることは間違いないようです。
サイバースティックは23,800円でも, XE-I
AP なら I 万円程度で買うことができます。い
さぎよく完成品を買うほうが賢いんでしよう
ね。どちらにしても,こういったトランジス
夕技術にしか掲載されないような記事がこの
Oh ! X に載ったことは, Oh ! X のキャラクターが
反映されていて安心できました。
浅野憲 (19) X I turbo III f X IF model 20, FM -
77 L 2, M 5 Jr . 大阪府
•特集 「 XC のための傾向と対策」について。
記事の レベルは いまくらいで適当だと思いま
す。本気で始めようと思ったら,たいていな
にかしらの本を購入するでしようし,いまく
らいの記事なら C 言語に入門しようかと迷っ
ている人を誘い込むのには適度な難易度だと
思います。あと,毎年丨回はこの関係の記寧
があるのですから,半年ごと(または丨年ご
と)の課題を作ってプログラムを募集するの
もいいのではないかと思います。
中川比呂志(丨 9) X 68000, Xlcs 東京都
•新連載「シミュレーションプログラミング
入門」について。冒頭で月産台数が3ケタも
出るかどうか,あやしいような車が出てきた
のには思わず笑ってしまったが,車の交通を
テーマに 持ってきたのは正解だと思う。日頃,
交通渋滞を経験せずにすむ人間でも,赤信号
で止まっていらいらしながら待つことは,ご
く一部の例外(離島で信号がないとか,そも
そも車がないとか)を除いて誰もが経験して
いるのだから,関心を持たないわけがない。
また,ほかの交通機関(たとえば鉄道)のよ
うに特別なルールを知っている必要性もなく
て,ごくごく日常的な知識の範囲で理解でき
るのだから,これはすごく いい テーマ選びだ
と思う。
「アナログ ジョイスティックの製作」 につ
いて。 ROM ライタがないとお話にならないと
いうことを別にして考えると,12月号のこの
記事はいろいろと考えさせられることがあっ
て,面白かったと思う。なにより 「 Z 80 は RAM
なしでも使える」というのが気に入った 。 RAM
と一緒になって使われているものしか見たこ
とがなかったせいもあるが, 「 CPU とはメモリ
なしでは使えない」という固定概念にとらわ
れてしまっていた自分が妙に情けなくなって
しまった。
土谷興正 (19) X IG , MSX 2 兵庫県
• C 言語について。実際に C をフルセットで
ガンガン使ったことはないのでたいしたこと
ごめんなさいの
1月号 Z ’ s-EX
Z’sSTAFF ver . 丨 .0 では Z ’ s - EX で拡張されたウ
ィンドウの表示がおかしくなるなどの症状が
出ています。原因は画面の初期化関係に違い
があるためです。基本的にはバージヨンアツ
ブサービスを受けることをお勧めしますが,
ver . I . O で利用したい場合には , Zs EX . X を起動
バグに関するお問い合わせは
〇的 (54 的)13110■通)
月〜金曜日16 : 00〜18 : 00
はいえないが, SmaH - C を使ったかぎりではマ
クロがいっぱい使えるアセンブラみたいで便
利だと思う。ただ,一応標準規格とも呼べる
ANSI の C が登場した以上は,過去のしがらみ
を捨ててフルコンパチ(アッパーコンパチは
不可)にしないと, BASIC のようにグチヤグチ
ヤになっていってしまう可能性が高いと思う。
特に, MS - C と QUICK - C と TURB 0- C の3者は
足並みを揃えるべきだと感じるが,いまのと
ころは X 68000には関係ないですね。
高村信 (20) XI turbo model 30, PC -8001 mk II
東京都
• 「アナログ ジョイス ティ ックの 製作 j につ
いて。ハードについてはわかりませんが,体
験したことをそのまま書き連ねていくことに
よって,読者のほうにしてみれば実際に作る
作らないは別として作ったような気分,ある
いは作りたい気分になるのではないのでしよ
うか0
安井百合江 (16) X 68000 PRO 愛知県
_ X | turbo 用「グラディウス」について 。XI
turbo ユーザー にとり,いい刺激になったので
はないでしようか。 MZ -700 ユーザーが 「スぺ
ースハリアー」を見て奮起したように,きっ
とこれで X Iturbo ユーザー も「 XI もまだま
だ j と奮起し,昔作りかけで挫折してしまっ
たブログラムを引きずり出してくる気が起き
たのではないでしようか。諸々の問題はあり
ましようが ,X Iturbo ユーザーの 起爆剤とな
ったであろう,この作品を載せたことは正解
であったと思います。
高橋毅 (19) X 68000 PR 0. MSX 2 埼玉県
する前に,
SCREEN 1,3, I
を実行して画面を初期化してください。
1月号 DICTOO し
ディスクには開発途中バージョンが入ってし
まいました。本誌に掲載された完成バージョ
ンは4月号の付録ディスクにあらためて収録
する予定です。申し訳ありませんでした。
12月号(で)のショートプロぱ一てぃ
とろける. X の作者名が間違っていました。
正しくは市岡孝浩さんです。大変ご迷惑をか
けました。お詫びいたします。
お問い合わせは原則として,本誌のバグ情
報のみに限らせていただきます。入力法,操
作法などはマニュアルをよくお読みください。
また,よくアド ベンチヤーゲームの 解答を
求めるお電話をいただきますが,本誌ではい
つさいお答えできません。ご了承ください。
168 Oh ! X 1991 .2.
X 6 的 00 ならではの
グラフィツクパワー
を追求しよラ
▼厳しい年末進行 1 のなか,お届けしたグラフ
ィック特集ですがいかがでしたでしようか。
大きな彭見力を持つ X 68000 ですが,それだけ
に消費する資源もへビーです。また,それを
扱う人間の能力,体力,時間も大変なもの。
今回は丹明彦氏の大活躍で切り抜けたものの,
編集部ではグラフィック関係を担当してくれ
るスタッフを/必要としています。力を貸して
くれる方,ぜひご連絡ください。
▼ I 月号に引き続いて特集した SX-WINDOW
ですが,プログラミングの解説記事は I 月号
の付!录ディスクに収録した資^斗をもとに行っ
てます。ディスクには各マネージャ (GRAPH
MAN など)の働きを記したドキュメントファ
イル , S X コール利用のためのリファレンス,
また C 言語で必要となるライブラリおよびイ
ンクルードファイルなどが収められています。
これらは今後ともウインドウプログラミング
の基礎資料として必要ですので,ぜひとも常
備しておいてください。丨月号をお持ちでな
い方は最寄りの書店でお申し込みください。
なお,バックナンバーの在庫は I 年間を目安
に確保しておりますが,号によっては早く品
切れになってしまう場合もありますのでご了
承ください。
▼村田敏幸さんの 「 X 68000 マシン語プログラ
ミング」が単行^本イ匕されましたが,好 fF につ
き品切れとなる書店が続出し,まだお求めに
なれない方も多いようです(ごめんなさい)。
すでに重版がかかっておりますので,お待ち
の方もまもなく入手できることと思います。
また,お読みになったご意見ご感想などもお
寄せください。
▼今月の 「 PASCAL プログラミングへの招待」
はお休みさせていただきます。また,「清水和
人のプログラミング道場」は清水和人氏がド
イツに滞在中のため通が中断しています。
春には帰国の予定ですのでしばらくお待ちく
ださい。なお,予告にありました Z - BASIC 用
「サザエさん劇中曲」は版権の問題で掲載で
きませんでした。お託びいたします。
籲原稿には,住所.氏名•年齢•職業•連絡
先電話番号 • 機種.使用言語.必要な周辺
機器•マイコン歴を明言己してください。
鲁プログラムを投稿される方は,詳しい内容
の説明,利用法,できればフローチヤート,
変数表,メモリマップ(マシン語の場合)
に,參考文献を明記し,プログラムをセー
ブしたテープ(ディスケット)を添えてお
送りください。また,掲載にあたっては,
編集上の都合により加筆修正させていただ
くことがありますのでご了承ください。
春ハードの製作などを投稿される方は,詳し
い内容の説明のほかに回路図,部品表,で
きれば実体配線図も添えてください。編集
室で検討のうえ,製作したハードが必要な
場合はご連絡いたします。
♦投稿者のモラルとして,他誌との二重投稿,
他機種用プログラムを単に移植したものは
固くお断りいたします。
あて先
〒108東京都港区高輪 2-19-13 NS 高輪ビル
ソフトバンク出版部
Oh ! X 「©©@®j 係
S
F T • B R E A K
► 最近《ドラゴン セ イノ<一が横浜の ゲームセ ンター
に入った。と,そこにはドラスピ,フエリオスでク
リアを競ったヤッがいた。前回,2回ともそいつに
負けているので,「今回こそは勝ってやる j と,意気
込んでプレイしているが,現在彼は最終面そして
私は6面でハマっている。う〜ん,どうやら勝負は
見えているようだな。 ( M )
►年末進行のおかげで,徹夜で)^を書くことにな
った。そうと決めてしまうと,なんかそれだけで物
事が解決したような気分になってしまって,ちっと
も進まない。しかも,ここは誘惑材^14にはことかか
ないし。おまけに,徹夜ボケの原稿は怖くて自分で
も読めない。かくしてもう一晩徹夜するはめに。と
ほほ。 (浦)
►この本は2月号だな。「私の触日は2月です。さ
て何日でしよう?」という問題を小学生以来出し続
けているが,いままで一発で当てられた確率は7割
を越えている。特に女の子の正当率が高い。そして,
そのあとの言葉も5割がた同じである。「どっちのブ
レゼントかわからないよね〜」う〜ん,今年も冬が
やってきた。 (亀)
►車で編集室に通うと,終電の心配をする必要がな
いのて気が楽になる。おかげで帰りが明け方になる
ことも多くて,がらがらの道をカッ飛ばして帰るの
力癖になってしまった。近ごろ自分でも運転マナー
か庵くなったと感じている。免許も更新することだ
し,安全運転を志していこうと思う。 (半年
で14,000 km 走ったダークグリーンシルビアの H . K .)
►この丨年を振り返ってみると,海外のゲーム(の移
植作品)にばかり熱中していたように思うのだ。こん
なことではいけなし、のだが,面白いものは面白い。
最近は海外ソフトの移植が流行のようだが,ただ上
っ面の移植だけでなく,その底に •; 荒れるセンスをつ
かまえ,自分のものにしていきたい。とりあえずは
腐った移植が山ほど出ないことを祈ろう。 ( A . T .)
►本文中では「雪不足 j と書いたが,どうやらよう
やく雪か牌ってきたそうだ。降るほうに予想がはず
れるぶんには大歓迎0今日,仕事を終え「イツパ j
栂池に向かう。ところで,ついに「ニューロ」家電
なるモノか 生0このぶんだと次は「バイオ」かな。
でもバイオの次にはいったい何がくるのだろう。皆
さんはどう思われますか。 ( C )
►にもかかわらず,何年か振りに TV ドラマを見た。
クリスマス.イブ。複雑な男女関係が,三角関係ど
ころか四角,五角と増えていき,どんどん泥沼へは
まっていくすごし、話だ。私は思った。このまま六角,
七角,と増えていけば n 角の n が十分大きいと円に近
似できるのと同様すべてが丸く治まるのではない
だろうか,とね〇誰か,実験してみません? ( K )
►スー/、•ーファミコンをなぜか買うことができた。
が,箱を開けてびっくり。 AC アダプタや RF ケーブル
が入っていない。ファミコンのものが代用できるか
らいいものの,画面のすごさを売りにするならビデ
オケーブルくらいは付属してほしかった。まあ,マ
リオ程度のソフト(絵が汚いぞ)しかできないのな
らそれでもいいか。 (少し後悔してる KO )
► 199畔もなんとか無事に終わり(そうで),とりあ
えずはひと安心。就職という転機の年だったわけだ
が,なんとなく日々に追われ,あっという間に過ぎ
去ってしまった。生まれてこのかた,ボーッとしな
がらのんびりと丨年を過ごしていたので,こんなに
早く I 年が®ぎることはなかったのに。しかし,と
りあえず充実した年ではあったなあ。 ( A )
► ドアの外でガヤガヤと話し声。なんだろ,と思っ
てたら,あろうことか突然人ん家のドアを掃除し始
めた!な,なんだあ? 「あのお j 「あ,すいませ
んねぇ,連絡しないで」。なんと,同じ階段の主婦連
が勢揃い 3 なんでこの人たちが階段掃除してんの
よ!月 I 万円近くの管理費はどこいってんの?
(それでも手伝えなくってゴメンナサイと思う E . O .)
►同人誌を買うにも合い言葉が必要な今日この頃。
POPULOUS はマニュアルを見なくても操作できた
のに POWER MONGER はいまいちわかりにくい。動
きは軽い。もっと重た I 、ゲームだと思し、込んでいた
のだが。しかし,膨大な効果音とグラフィック,こ
れでディスク I 枚沮要 5 I 2 K / くイト RAM ……イギリ
ス人恐るべし ( U )
► 24 日の クリスマス イブは編集部で徹夜だった。そ
のまんま25日も徹夜になりそうだったが,かろうじ
て夕方7時ごろに家に戻って睡眠をとった。そして
終電で出勤。クリ スマス 音楽のカセットをかけなが
ら瞧部に向かった。ああ,それなのに,会吐のあ
るビルの玄関に待っていたのは,大きな憎らしい門
松であった。ううっ……〇 GE 月嫌いの丁)
編集室から 169
microOdyssey
ふと目が覚めると,約束の時間はとうに過ぎ
ていた。げげ一っ,やばい! 指が憶えた Tele
phone number を急いでなぞる。「はい, Oh ! X です」
「あの, ぉ〜, 寝坊しました。すみません」「そん
なこったろうと思った」,あらま . 。
受話器を置いたら,なんかホッとした。時計
は AM 7 : 38を指している。ということは,2晚徹
夜していたとはいえ7時間も眠ってたのか!
ここんとこ忙しかったし,いろいろあったから
なぁ。あ,レーザーディスクひと晚回しっぱな
し! ま,いいか。このまま見ちゃおうっと。
雲か,流れてく,早く,早く . 。 . まる
でいまのあたしみたい。流されるまま流されて,
何処へたどり着くのかさえわからない。……マ
ズイな,なんか nervous になってる 。 nervous
breakdown てヤツかな。きっとそうだね。だっ
て,1990年があたしにとって長かったのか短か
ったのかすら,もうわからないんだもの。いろ
いろなことがあったのは確かだけど。
でも,ほんとにこの丨年間,自分自身のため
になにかしたことってあっただろうか。
空が,青い,文字どおりの , Sky blue ……。こ
んなきれいな空,最後に見たのはいつだったろ
う。見上げればいつでもあったはずなのに。灰
色に見えたのは,あたしの心のせい? モニタ
に映し出された空は,子供の頃に見ていた色と
おんなじで,ほんとに青くて,ただそれだけな
んだけど,涙が出そう。あ,出ちゃった。
やさしくて力強い,空の色から伝わってくる
そんな思いが,胸に刺さってずきずきする。
モニタには,人波に逆らってこちらに向かっ
てくる彼ら。それはまるで彼らの生きざまを表
しているかのよう。流れに逆らってでも自分ら
しく生きる。つらくないわけがない。それでも
彼らは笑っている。なぜかはあたしが,あたし
自身の身体が,いちばんよく知ってる……。
そばにあるキーボードの鍵盤に,そっと触れ
る。なんだかとても懐かしい気がする。ギター
を手に取る。指に触れる弦がちょっぴり痛いや。
子供の頃から音楽が好きだった。 Melody さえあ
れば幸せ,なければ自分で唄っていた。気に入
らなきゃ自分で作って。音楽をもっと表現した
くてやった Musical , 自分の Promotion video に使
いたくて勉強した CG 。 一生懸命だった頃。
ほんとに好きなことがあれば,なんだってや
れる。 この一 瞬は二度と来ない,だから死んで
るように生きたくないって,そう思ってたはず
なのに。いつのまにか流れに逆らうことをやめ,
濁流の中でもがいている。なんか滑稽だね。
いま,やっと見えてきた,ほんとうにやりた
いこと。あたしにしかできないこと。
人を愛して別れていくなかで,あたしは時間
を止める方法を教わった。もう25だから,そん
なこと考えていたら,一歩も前に進めやしない。
傷つくことも多いけど,うれしいこともたくさ
んある。いつでも一生懸命でいたい。たったひ
とつしかない,宇宙から見たらほんとにちっぼ
けだけど,あたしの microOdyssey. 0
ぎゃ〜,もうこんな時間! 早く会社いかな
くっちゃ。っと,レーザーディスクは消して。
ほうら,外には真っ青な空が広がっているよ。
(12/24, ひとりの X,mas eve に。 E.O.)
氺 LASERDISC is “TWO ALONE UP-BEAT” by
VICTOR MUSICAL INDUSTRIES.INC.
1991 年 3 月号 2 月 18 日 (月)発売
特集 MIDI & MUSIC PROCESSING
MIDI 楽器制御の基礎知識
SX -14 /fNDOlV プログラミング
X68000CARDDRV 用 カードゲーム EIGHT
Oh!X LIVE in *91
X 68000 用戦いの兜
XI 用 BIRTHDAY
パックナンバー常備店
神奈川 厚木
有隣堂厚木店
平塚
0462(23)41 11
文教堂四の宮店
0463(54)2880
干葉 柏
新星堂カルチェ 5
0471 (64)8551
船橋
リブ ロ船橋 店
東京 神保町 三省堂神田本店 5 F
0474(25)01 11
03(3233)3312
//
芳林堂書店津田沼店
// 書 泉ブックマート BI
0474(78)3737
03(3294)001 1
干葉
多田屋千葉セントラルブラザ店
// 書 泉グランデ 5 F
0472(24)1333
03(3295)001 1
埼玉 川越
黒 田窨店
秋葉原 T-ZONE 7 F ブックゾーン
0492(25)3138
03(3257)2660
Jl | P
岩 渕窨店
八重 洲 八重 洲ブックセンタ ー 3 F
0482(52)2190
03(3281)181 1
茨城 水戸
川又窨店駅前店
新宿 紀伊国屋窨店本店
0292(31)0102
03(3354)0131
大阪 北区
旭屋書店本店
高 田馬場未来堂 害 店
06(313)1191
03(3200)9185
都 島 区
駸 々堂京 橋 店
渋谷 大盛堂 害 店
06(353)2413
03(3463)051 1
京都 中京区
オーム社窨店
池袋 リブロ池袋店
075(221)0280
03(3981)011 1
愛知 名古屋
5 省堂名古屋店
" 西武百貨店 9 F
052(562)0077
コンビュータ•フオーラム
//
バソコン 2 上前津店
03(3981)0111
052(251)8334
神奈川横浜 有隣堂横浜駅西口店
刈谷
三洋堂 香 店刈谷店
045(311)6265
0566(24) 1134
" 有隣堂 ルミネ 店
長野 飯田
平安堂 飯田 店
045(453)081 1
0265(24)4545
藤 沢 有隣堂藤 沢 店
北海道 室閫
室蘭工業大学生協
0466(26) 1411
0143(44)6060
定期 購睇の お知らせ
少し前にご通知いたします。継続希望の方は,
上記と同じ要領でお申し込みください。
海外送付ご 希望の 方へ
Oh!X の定期購読をご希望の方は織じ込みの
本誌の海外発送代理店,日本 IPS (株)にお
振替用紙の「申込 窨」 撊 にある「新規」「継
申し込みください。なお,購読料金は郵送方
続」のいずれかに〇をつけ,必要事項を明記
法,地域によっ
て異なりますので, 下記 宛必
のうえ,郵便局で購読料をお振り込みくださ
ずお問い合わせください。
い。その際渡される半券は領収 窨 になってい
日本 IPS 株式会社
ますので,大切に保管してください。なお,
〒101 東京都千代田区飯田 橋 3-1 卜 6
すでに定期購読をご利用の方には期限終了の
003(3238)0700
■】h 画 XX パ号
■ 1991年2月丨日発行定価560円(本体544円)
■発行 人孫正義
■編集 人橋本五郎
■発売元 ソフトバンク株式会社
■出版 事業部 〒1〇8東京都港区高輪 2-19-13 NS 高輪ビル
Oh!X 編集部003 (5488) 1309
出版営業部 003(5488)1360 FAX 03(5488)1364
広告センター Q 03(3297)0181
■印刷凸版印刷株式会社
©199! SOFTBANK CORP . 雑誌02179 -2 本誌からの無断転載を禁じます。
落丁•乱丁の場合はお取り替えいたします。
170 Oh! X 1991.2.
バックナンバー案内
ここには1990年2月号から1991年 I 月号までをご紹
介しました。現在1989年12, 1990年9〜12, 1991年
I 月号までの在庫がございます。バックナンバーお
よび定期購読のお申し込み方法については,188ペー
ジを参照してください。
iihiSJ
m
OhfXl
uhlXK
2 月号(品切れ)
特集画像圧縮への アプローチ
H ショートプロぱ一てい / Z 80 ,s Bar / DoGA-CGA
X 68000 マシン語 / C 調言語講座/ X - BASIC 調理実習
• X 68000 用ゲームプログラム Gon Gon
參 MZ - 700用紙芝居 Eyelarth
LIVE in '90 オーダイン/魔女の宅急便
THE SOFTOUCH A - JAX / フラッピ ー2/ 夢幻戦士ヴァリス通
マ ジッタ/、•レッ ト/ Mu -1 /CYBERNOTE PRO -68 K
全機種共通システム超小型コンパイラ TTO +
3月号(品切れ)
特集 MUSIC アドべンチャー
X 68000 用 MIDI ドライバ&音源エディタ
なんでも鳴らせる 0 PMD . X / MML を楽譜データに
0 ショー ト プロ ば一てい / Z 8 (Ts Bar / DoGA-CGA
C 調言語講座/ X - BASIC 調理実習
參 Xl / turbo シミュレーション CRISIS in Tokyo
LIVE in *90 パワードリフト/スキーム/となりのトトロ
THE SOFTOUCH ナイトアームス 7 斬/ダンジョンマスター
全機種共通システム超多機能アセンブラ OHM - Z 80
4月号(品切れ)
特集ゲームシステム文学誌
1989年度 GAME OF THE YEAR 発表
H ショートブロぱ一てい / Z 80 ,s Bar / DoGA-CGA
X - BASIC 調理実習 / C 調言語講座/ X 68000 マシン語
鲁 X 1. MZ - 2000/2500用 RPG The Cave of Dalk
•うわさの6804 0, ついに登場
LIVE in '90 パーニングフォース (0 PMD 対応)
THE SOFTOUCH The Fille Professor/HOST PRO -68 K
全檐檯共通システムファジィコンピュータシミュレータト MY
5月 号 (品切れ)
特集 BASIC プログラミング
第5回言わせてくれなくちゃだワ
ショー トプロ ぱ一 てい /Z80’s Bar
X-BASIC 調理 実習/ X68000 マシン語プログラミング
•新機種 X68000SUPER-HD/EXPERTD/PROH
•ラジコンスティックの 製作
LIVE in *90 TURBO OUTRUN
THE SOFTOUCH 天下統一/ ポピユラス/ Hyperword
全機種共通システム インタプリタ 言語 STACK
6月咢(品切れ)
特集剌刊8周年記念 PRO -68 K (付録 5"2 HD )
Oh !X アンケート結果大分析大会
ショートプロば一てい /Z80,s Bar/PurePASCAL
X-BASIC 調理実習/ X68000 マシン語プログラミング
• XI turbo 用コマンドシェルシミユレータ
籲ハードウヱアエ作入門
LIVE in ’90ナイトアームズ/悪«城伝説/この木なんの木
THE SOFTOUCH 三国志 H/FAR SIDE MOON/ グラナダ
全機種共通システム X68000 用 S-OS“SWORD ••他
7月号(品切れ)
特集マシン語への第一歩
X 68000 SUPER-HD 試用レポート
ショートプロ ば一てい /Z80’s Bar/DoGA-CGA
X- BASIC 調理実習 /PurePASCAL
• INTEGRAL XI—— ノーマル XI への対応
籲ハードウェアエ作入門
LIVE in *90 夢幻戰士ヴァリス11/トッカータとフーガニ短調
THE SOFTOUCH サーク/あ一くしゅ/ダウンタウン熱血物語
全機種共通システムリロケータブルアセンブラ WZD
日月号(品切れ)
特集 ADVANCED 2 D GRAPHICS
1 00号記念特別モニタプレゼント
I ショートプロぱ一てい / Z 80 ’s Bar INTEGRAL XI
X - BASIC 調理実習/ X 68000 マシン語プログラミング
PurePASCAL // 、ードウェアエ作入門
1 X 68000 用画像回転プログラム XROT 0 .X
I
LIVE in '90 OMENS OF LOVE ENDLESS RAIN ダートフォツクス
THE SOFTOUCH 大航海時代ウルテイマ V プロミストランド
全機種共通システムリンカ WLK
iJU^U
9月号
特集1日本語を処理するための序章
特集2 ADVANCED 2 D GRAPHICS
H ショートプロは•一てぃ / Z 80 ,s Bar / DOGA-CGA
_ X - BASIC 調理実習/マシン語プログラミング
13 PurePASCAL / ハードウェアエ作入門
籲清水和人流プログラミング道場
LIVE in *90 風の谷のナウシカ/ラジオ体操第一
THE SOFTOUCH T & T / D - Again / シムシティー/ギャラガ’88ほか
全機種共通システム BILLIARDS
ahiXI
10月号
特集電子音楽術入門
I ショート プロ ば一てぃ / Z 80 ,s Bar / D 6 GA-CGA
マシン語プログラミング/ハードウェアエ作入門
清水和人流プログラミング道場
• 荻窪圭の大人のための X 68000
• 中森章のようこそここへ C 言語
LIVE in *90 Rise And Fall / PARADOX / キュービー 3 分クッキング
1
THE SOFTOUCH ワールト•コートルーンワース閬の血族提督の決断
全機種共通システムライブラリアン WLB
11月号
特集理科系の GAME REVIEW
I ZfiO's Bar / D 5 GA . CGA / カードゲーム
マシン語プログラミング/ハードウェアエ作入門
PurePASCAL / X-BASIC 調理実習
ようこそここへ C 言言吾 / INTEGRAL XI
荻窪圭の大人のための X 68000
LIVE in '90 ピラミッドソーサリアン/ザ•スキーム
THE SOFTOUCH SPECIAL ラグ-ン/幻獣鬼/サイバリオン/ GUNSHIP 他
全機檯共通システムスクリーンエディタ EDC-T
aiiiXS
12月号
特集 xc のための傾向と対策
X-BASIC プログラミング調理実習/ハードウヱアエ作入門
マシン語プログラミング/ショ ー トプロば 一て ぃ /Z80’s Bar
大人のための X68000/ ようこそ ここへ C 言語/ INTEGRAL XI
•シミュレーションプログラミンクフ
• 特別企画アナログジョイスティックの製作
LIVE in '90 グラディウス 111/ メタルサイト
THE SOFTOUCH SPECIAL イメージファイト/ジェミニウイング/ NAI0US 他
全機種共通システム STACK コンパイラ
CL^ 轉 ■••nsx-woow
1月号
特集急接近! SX-WINDOW
特別付録謹賀新年 PRO -68 K (5"2 HD )
ハードウェアエ作入門/シミュレーションプ□グラミング入門
D 6 GA . CGA / ショートプロば一てい/大人のための X 68000
PurePASCAL 清水和人流プログラミング道場 X-BASIC 調理実習
LIVE in *91 めぞん一刻/涙で綴るパパへの手紙
THE SOFTOUCH ソル•フイース銀英伝 II 絞ダンジョン.マスタ-他
製品紹介光磁気ディスク CZ -6 M 0 I
全機種共通システムブロックアクションゲーム COLUMNS
Oh! X 1991.2. 171
//
//
if
ft
柏 市
//
松戸市
//
橫浜市
//
//
//
//
//
//
//
//
//
川崎市
//
//
//
鎌倉市
"
憒湏賀市
藤沢市
//
//
茅ヶ崎市
平塚市
//
小田原市
//
ft
相樸原市
渾久并郡
小金并市
国分寺市
武蔵野市
//
/〆
〈東京〉
千代田区
//
//
//
//
"
//
//
//
//
//
中央区
//
//
港 区
//
//
//
品川区
"
渋谷区
//
//
//
//
新宿区
//
//
//
//
//
//
"
S 島区
//
//
//
//
//
三省堂窨店神田本店
03-3233-3312
害泉グランデ
03-3295-0011
東京堂害店
03-329 卜5181
旭屋軎店水道撟店
03-3294-3781
九善お茶の水店
03-3295-5581
雍眾堂
03-329 卜 1362
いずみ神田南口店
03-3254-8521
明正堂秋葉原店
03-3257-0758
Bit INN 東京
03-3255-4575
T-Z0NE
03-3257-2660
ラオックス THE COMPUTER 館
03-5256-31 11
八畫州ブックセンター
03-328 卜 1811
日本橋九善
03-3272-7211
旭屋害店銀座店
03-3573-4936
害原新撟店
03-3591-8738
雄峰堂 N S 店
03-3503-6586
虎ノ門害房本店
03-3502-3461
虎ノ門害房田町店
03-3454-2571
芳林堂大井町店
03-3474-4946
明屋害店五反田店
03-3492-3881
紀伊國屋窨店渋谷店
03-3463-3241
旭屋害店渋谷店
03-3476-3971
三省堂窬店渋谷店
03-3407-4545
大盛堂窬店
03-3463-0511
紀伊國屋窨店笹塚店
03-3485-0131
紀伊國屋軎店本店
03-3354-0131
三省堂窬店新宿西口店
03-3343-4871
福家窬店センタービル店
03-3345-1246
福家窬店野村ビル店
03-3342-0298
新星堂 N S ビル店
03-3344-2055
西武新宿ブックセンター
03-3208-0380
芳林堂高田馬場店
03-3208-0241
未来堂
03-3200-9185
旭屋害店池袋店
03-3986-0311
芳林堂池袋店
03-3984-1101
リブ a 池袋店
03-398 卜0111
三省堂窨店池袋店
03-3987-0511
新栄堂本店
03-3984-2345
新栄堂アルパ店
03-3988-0181
明正蚩中通り店
03-383 卜0191
ブックストア•談
03-3635-1841
文教堂育戸店
03-3838-5938
文教堂西葛西店
03-3689-3621
アクトブックスサンカマタ店
03-3735-1551
竜文堂大森駅ビル店
03-3775-3851
明屋窬店東京本社
03-3387-8451
ブックセンター获3
03-3393-5571
害/*杉並店
03-3313-4778
紀伊國屋書店吉祥寺東急店
0422-21-5543
弘栄重吉祥寺店
0422-22-1031
パルコブックセンター吉祥寺
0422-21-8122
真光窨店
0424-87-2222
啓文堂
0423-66-3151
三也堂窬店三臘店
0422-48-4510
東西書房
0422-46-0275
文教堂小金井店
0423-86-0161
三成堂国分寺店
0423-25-3211
押田謙文堂
048-641-3141
ブックセンター押田
048-647-3141
主省堂プックボート
048-646-2600
須原屋蕨店
0484-44-1211
岩浏窨店川口店
0482 -52-2 190
黑田書店川越店
0492-25-3138
芳林堂所沢店
0429-25-5355
いけだ窬店所沢店
0429-28-3271
黒田窬店上福岡店
0492-66-0120
文教堂朝®店
0484-76-0107
新星堂志木店
0484-74-0182
文教堂春日部店
048-752-7666
锦電サービス
0492-96-2962
多田屋セントラルフラザ店
0472-24-1333
キディランド干葉店
0472-25-201 1
巌翠堂
0474-72-5011
ときわ軎房本店
0474-24-0750
リブロ船橋店
0474 -25-0 III
旭屋窨店船橋店
0474-24-7331
芳林堂津田沼店
0474-78-3737
第二巌眾堂
0474-65-0926
三省堂窬店西船檇店
0474-34-31 11
西ロアサノ
0471-44-21 11
新星堂柏店
0471-64-8551
堀江良文堂
0473-65-5121
辰正堂駅ビル店
0473-64-7997
有隣堂トーヨー店
045-311-6265
有®堂東ロルミネ店
045-453-0811
栄松堂相鉄ジョイナス店
045-32 卜6831
そごうプックセンター
045-465-2111
九蕃ブックメイツポルタ店
045-453-6811
有瞬堂伊勢佐木店
045-261-1231
有隣堂戸塚店
045-881-2661
文華堂戸塚店
045-864-5151
アーバン文華堂
045-82 卜5151
文教堂育葉台南口店
045-983-5150
有®堂アゼリア店
044-245-1231
有隣堂川崎 BE 店
044-200-6831
文学堂本店
044-244-1251
文教堂溝の口店
044-811-8258
島森害店大船店
0467 -46-3841
if 倉害店
0467-46-2619
平坂書房 WALK 店
0468-25-5537
有®堂藤沢店
0466-26-141 1
リブロ藤沢店
0466-27-01 11
文教堂六会店
0466-82-9610
川上窬店ルミネ店
0467-87-3827
サクラ書店駅ビル店
0463-23-2751
文教堂四之宮店
0463-54-2880
八小金書店
0465-22-7111
伊勢治害店
0465-22-1366
文教堂小田原店
0465-36-3677
有瞬堂厚木店
0462-23-4111
文教堂中央林閗店
0462-75-4165
文教堂相撗大野店
0427-49-0650
文教堂撟本店
0427-74-5581
文教堂星ヶ丘店
0427-58-6121
文教堂城山店
0427-82-9278
く北海道〉
札幌市
紀伊國屋窬店札幌店
01 卜23卜2131
//
旭屋書店礼橡店
01 卜24卜3007
ク
九善らがぁ一る新札幌 DUO 店
011-890-2588
//
* 貴堂札俠バルコ店
01 卜2 14-2303
//
ダイヤ害房本店
01 卜 712-2541
//
ダイヤ窬房西店
011-665-6223
旭川市
旭川*貴堂
0166-26-3481
//
ブックス平和マルカツ店
0166-23-6211
苫小牧市
旭屋軎店苫小牧店
0144-36-5185
く東北〉
爾森市
成田本店
0177-23-2431
"
岡田書店
0177-23-1381
弘前市
紀伊國屋窬店弘前店
0172-36-4511
//
今泉本店
0172-32-2231
//
メディアイン城東店
0172-27-8118
八戸市
伊吉窨院
0178-44-1917
盛岡市
さわゃ窬店
0I96-S3-44I 1
//
第一害店
0196-53-3355
仙台市
金港堂
022-225-6521
"
金港堂ブックセンター
022-223-0979
//
アイエ害店駅前店
022-264-0718
//
九蕃仙台支店
022-266-1127
"
高山窨店
022-263-1511
秋田市
三浦窨店
0188-33-8131
山形市
八文字屋
0236-22-2150
福島市
岩湘書店コルニエツタヤ店
0245-2 卜2101
"
博向堂
0245-2 卜 1161
郡山市
柬北窨店
0249-32-0379
いわき市
ヤマニ窬房本店
0246-23-3481
//
鹿島プックセンター
0246-28-2222
会漳若松市
宝文館
0242-27-5198
原町市
文芸堂
0244-22-1720
〈間東〉
水戸市
川又書店駅前店
0292-3 卜0102
//
ツルヤブックセンター
0292-25-2711
胳田市
武石書店
0292-73-1212
東海村
大野害店
0292-82-2098
鹿 A 郡
なみき書店
0299-96-1855
土浦市
共栄堂
0之 98-2 卜6134
つくは市
九蕃筑波大学会館店
0298-5 卜6000
//
友朋堂吾妻本店
0298-52-3665
宇都宮市
落合書店オリオン店
0286-34-3777
//
落合書店東武ブックセンター
0286-34-8271
//
新星堂宇都宮店
0286-33-2337
小山市
進 K 堂駅ビル店
0285-25-1522
前撟市
煥乎堂
0272-23-1211
//
リブ Q 前撟店
0272-34-101 1
ft
戸田窬店前橋店
0272-61-5063
高崎市
字陽書房
0273-23-4055
//
サカヰ窬店
0273-62-1500
//
新星堂高崎店
0273-27-3961
ft
戸田書店高崎店
0273-63-51 10
太田市
ナカムラヤ
0276-22-2001
く首都圏〉
满和市
m 原屋本店
048-822-5321
//
須原屋コルソ店
048-824-5321
ソフトバンクの
書籍特約書店
下記の害店の一覧は、ソフトバンク書籍特約
店として右にある商品の低新刊もとりそろえ
ております。ご希望の商品がある場合は、下記
のお近くの書店にてお買い求め下さい。
(注)現品が売れて補充中の場合もございますので、
ご;主 s 下さい。
ISmk
ソフトバンク出版事業部
〒108東京都港区高綸 2-19-13 r 03 (5488) 1360
全国特約書店一覧
市 市市市市 市市市市郡市 市市
宮 //// P 越沢//調 S 木0 S 5 企葉//啡懦//
大蕨川川所上朝志 ff 比千 習船
市市市
E
市市市
布中!!パ
|»府三
区区区区区 区区
東田飾 FJI 1 田//野並
台墨* > x 大中杉
特約書店基本図書一覧
定価は すべて 税込です。
国立市
東西軎店
0425-75-5061
小平市
文教堂小平店
0423-43-9229
東村山市
文教堂東村山店
0423-96-11 15
立川市
オリオン書房ウイル店
0425-27-2311
八 王子市
くまざわ害店本店
0426-25-1201
町田市
有隣堂町田店
0427-23-3018
//
久美堂本店
0427-25-1330
//
久美堂小田急店
0427-27-1111
//
文教堂®川店
0427-35-4117
//
文教堂小川店
0427-96-1781
多®市
くまざわ害店桜ヶ丘店
0423-37-2531
福生市
文教堂福生店
0425-53-7708
く 甲信越 •
北陸〉
甲府市
文教堂甲府店
0552-22-4600
長野市
平安堂長野店
0262-26-4545
"
長谷川軎店
0262-26-2122
松本市
フックスロクサン
0263-35-5555
//
改造社松本駅ビル店
0263-36-3777
//
アクロスブックセンター
0263-32-5733
上田市
平安堂上田店
0268-22-4545
飯田市
平安堂飯田店
0265-24-4545
岡谷市
笠原窬店
0266-23-5070
斑訪郡
平安堂下調訪店
0266-28-1111
新潟市
紀伊國屋害店新潟店
025-24 卜5281
//
S 松堂
025-229-2221
"
北光社
025-228-2321
長岡市
覚張書店
0258-32-1139
//
ブックセンター 長岡
0258-36-1360
//
長岡技大長峰文化
0258-46-6437
上越市
ハソトヒアコスモス
0255-25-5867
山北町
BOOK メディア
0254-77-3850
畜山市
湘川窨店
0764-24-4566
//
清明金
0764-24-4166
//
BOOKS なかだ 豊田店
0764-32-1353
//
文苑堂本郷店
0764-22-0552
"
文苑堂赤江店
0764-33-0321
高岡市
文苑堂
0766-21-0333
//
文苑堂横田店
0766-21-0431
金 沢 市
うつのみや片町店
0762-21-6136
//
窬林香林坊本店
0762-20-501 1
野々市町
王様の本本店
0762-46-5325
福并市
牌木軎店
0776-24-0428
//
品川窨店新田塚店
0776-24-11 12
〈東海〉
酹岡市
S 争岡谷島屋呉服町本店
0542-54-1301
"
江 崎窨店
0542-54-4481
//
吉見窨店
0542-52-0157
//
戸田書店 S B , S 店
0542-81-5733
//
戸田窬店曲金店
0542-8 卜 5899
沼津市
吉野屋
0559-23-5676
//
マルサン窨店宝塚店
0559-63-0350
畜士市
戸田害店富士店
0545-51-5121
清水市
戸田害店本店
0543-65-2345
浜松市
浜松谷岛屋連尺本店
0534-53-9121
名古屋市
S 省堂 耆店名古屋店
052-562-0077
//
星野軎店近鉄ビル店
052-58 卜 4796
//
丸善名古屋支店
052-26 卜 2251
"
丸蕃 ブックメイツセントラルハーク
052-971-1231
//
日進堂上前漳店
052-263-0550
名古屋市
三洋堂パソコン シヨ ッブ S
052-251-8334
//
三洋堂いりなか本店
052-832-8202
//
ちくさ正文館本店
052-741-II 37
//
白樺書房西店
052-774-7223
豊撟市
W 文館
0532-54-2345
岡崎市
ブックス鎌倉
0564-54-1822
豊田市
三洋堂梅坪店
0565-35-2334
豊川市
三洋堂豊川店
05338 -3-0334
刈谷市
三洋堂刈谷店
0566-24-1134
春日并市
三洋堂勝川店
0568-32-7806
一宮市
三洋堂一宮店
0586-77-5734
岐阜市
自由書房
0582-65-4301
大垣市
大洞堂ブックス 258
0584-81-2553
//
大洞堂岐大パイハス店
0584-74-7766
可児市
三洋堂可児店
0574-63-2334
多治見市
=洋堂多治見店
0572-24-0340
津 市
別所書店 II ビル店
0592-24-1014
四日市市
文化センター白揚
0593-51-0711
鈴鹿市
シエ トワ白掲スズカ
0593-82-5221
く近畿〉
京都市
駿々堂京宝店
075-223-1003
//
アバンテイ • ブックセンター
075-682-5031
"
オーム社書店河原町店
075-22 卜 0280
//
ジュンク堂京都店
075-252-0101
//
オーム社軎店竹田店
075-644-261 1
奈良市
敁々堂大丸店
0742-26-624!
大阪市
旭屋窨店本店
06-313-1191
//
紀伊國屋窨店梅田店
06-372-5821
//
オーム社窨店大阪店
06-345-0641
//
敁々堂京撟店
06-353-3209
"
5 曼々堂心斎撟店
06-25 卜 0881
//
旭屋害店ナンパ店
06-644-2551
//
ナンパブックセンター
06-644-5501
"
ヒバリヤ軎店 ナン バ店
06-644-5407
//
旭屋窬店 アベ ノ店
06-631-6051
//
ューゴー窨店
06-623-2341
//
河村書店
06-951-2968
枚方市
水嶋書房京阪デパート店
0720-51-3432
高槻市
コーべブックス西武高槻店
0726-83-1766
東大阪市
ヒバリヤ害店本社
06-722-1121
神戸市
ジュンク堂センター 街店
078-392-1001
//
ジュンク堂サンバル 店
078-252-0777
//
海文堂窨店
078-33 卜 6501
//
日東館軎林
078-39 卜 8701
姫路市
新興書房
0792-85-3344
"
誠心堂軎店
0792-81-2055
和歌山市
宮井平安堂
0734-31-1331
//
帯伊書店
0734-22-0441
く中国〉
岡山市
紀伊國屋窨店岡山店
0862-32-3411
//
丸善岡山支店
0862-3 卜 2261
津山市
津山ブックセンター
08682 -6-4047
広島市
紀伊國屋害店広岛店
082-225-3232
//
九蕃広島支店
082-247-2251
//
金正堂
082-248-3715
//
積善館
082-248-3151
尾遒市
啓文社尾道店
0848 -37-5151
福山市
啓文社福山店
0849-22-3111
福山市
ブック シティ 啓文社
0849-25-0050
〃
啓文社コア
0849-41-0909
山口市
五十部誠文堂
0839-24-6630
//
文栄堂
0839-22-5611
下閱市
中野軎店
0832-22-6181
宇部市
京屋軎店
0836-31-2323
//
末広害店
0836-3 卜 0086
防府市
波文堂国衙店
0835-25-1988
光 市
三文字屋
0833-7 卜 0251
鳥取市
畜士畜店
0857-23-7271
松江市
圍山窨店
0852-2 卜 4167
<四国〉
徳臬市
小山助学館本店
0886-54-2135
"
小山助学館東口店
0886-25-1380
"
森住九善
0886-23-3228
高松市
宮脇窨店本店
0878-51-3733
九衝市
宮脇窨店丸亀店
0877-22-5533
松山市
紀伊國屋書店松山店
0899-32-0005
"
明屋窨店本店
0899-41-4141
"
明屋書店大街道店
0899-41-4242
//
九三窨店
0899-3 卜 8501
新居浜市
明屋星原店
0897-44-4000
宇和*市
明屋宇和島店
0895-23-1118
高知市
金高堂
0888-22-0161
<九州 • 沖繩〉
福岡市
紀伊國屋書店福岡店
092-72 卜 7755
//
り一ぶる天神
092-713-1001
"
« 文館新天町店
092-781-2991
//
福岡金文堂本店
092-74 卜 2106
//
福岡金文堂朝日ビル店
092-43 卜 1094
//
福岡金文堂デイトス店
092-451-6175
//
福岡金文堂アニマート原
092-844-0088
北九州市
ナガリ書店
093-52 卜 1044
"
金栄堂
093-531-3685
//
旭屋軎店北九州店
093-63 卜 6421
//
井筒屋プックセンター
093-641-0131
//
カルパーク平野
093-661-7988
//
白石軎店本城店
093-601-2200
久留米市
エマックスたがみ
0942-33-1841
飯塚市
BOOK リード
0948-25-7266
大分市
パルコブックセンター大分店
0975-35-0643
//
本町晃星堂
0975-33-0231
別府市
明林堂
0977-23-2183
宮崎市
中央、田中害店
0985-24-351 1
//
搿屋宮崎店
0985-27-4111
佐贺市
金華堂北バイパス店
0952-32-1965
"
搰文館佐背店
0952-24-4314
//
m 文館デイトス店
0952-23-7155
長崎市
メトロ軎店
0958-2 卜 5453
//
好文堂
0958-23-7171
佐世保市
金明堂軎店
0956-22-4214
熊本市
屺伊國屋軎店熊本店
096-322-5531
//
畏崎害店
096-353-0555
人吉市
明屋人吉店
0966-22-5486
鹿児 A 市
春苑堂ブックプラザ
0992-25-3200
//
ブックスみすみ
0992-57-101 1
那顥市
球隈堂窨房ビル店
0988-63-3752
//
文教図書
0988-62-1201
180昍アセンブリ言語 •
8086マクロプログラミング •
入門 Tirto PASCALv e 「.5 プログラミング •
IGDC テクニカルブック •
| C 言語の基礎知識 ^
C 言語の活用理解 ^
。言語の応用50例 ^
|上級言語の応用50例 -
I Play the C 上巻 _
Play the C 下巻 •
| C プリプロセッサ•パワー «
Turbo C 入門 1
C ++ プログラミング •
QuickC プログラミング '
I 詳説 。 Big •
MS - CVer .5.1 プログラミング |
I Turbo CVer .2.0 プログラミング 、
| ダイナブック•スーパーガイド-
最新八ードディスク入門 -
I 最新 EMS . RAM ディスク入門 、
プレイ MS-DOS
MS - DOS いたれりつくせり本
」新 MS - DOS 入門 ビギナー編
^新 MS - DOS 入門 シニア編
新 MS - DQS 入門応用編
| OS /2 API ブック I
OS /2 API ブック II
UNIX オペレーティング•ガイド
一太郎 Ve 「.3 ガイド
入門一太郎 Ver .4.2
PIEXE ガィド
RPG 幻想事典
RPG 幻想事典日本編
魔法王国シムルグント
|LOTUSl-2-3 ガイドビギナ-編 • 2, 480円
LOTUS 1-2-3 ガイド II • 2, 580円
桐 Ver 2 ガイド • 2, 580円
入門桐 Ve 「.2 —括処理 籲 3,500円
NinJa 3 ガイド 籲 2,300円
MS-Chart Ver .3.1 ガイド 籲 2,990円
|まいと一くガイド • 2, 370円
d 巳 ASEIII PLUS ガイド 參 3,800円
|The CARD 3ガィド 籲 2,900円
|アセンブラ CASL 入門 籲 2,060円
八 ー ドウ エア徹底マスター 鲁 2,580円
F 〇 RTRAN 徹底マスター 籲2,890円
受験用語八ンドブック 籲 1,860円
情報処理入門 I 基礎知識 •し 24 〇円
情報処理入門 II 関連知識 U 4 。 円
CASL で学ぶアセンブラ入門 • 2, 270円
|そっくり模擬試験 ♦ 2, 200円
情
報
処
理
試
験
アプ U ケ1シ
アセンフラ
網の翁
M» そ dMIYES 5F
パソコンシ a- ノブ八卜•ソン
na 霉巧«チ I* •ン_«家®
%m デン:!ードー aw 寒店
秋田 電巧«チ I— ン找田明舫辜店
iu 色 ヂンコードー仙 tt 本 s
デン:!ードー Dac 德 Jft 類口 «
庄子デンキ: r ノビユータ中央 a
B 山 ラすい百*店
福鷉 ff 子デンキ粉又明衂店
いわきIめきマイコンショップ
" 庄子デンキ山形七日 w 窣店
PIC
PIC こば 0®
丸鬌デバート1 F
丸_マイコンシ 3 ップジヤスコ
T«B KSP^ffB
mm パソコンランド8拓穩店
舄_ パソコンランド?I邐黷£
X田 パソコンランド?IX田店
«生
山形
断!!
ソ3ンランド21 _生店
又薩 SIR 的 R ?F
水戶 /MSI
つくばミド•膚 M
ダイエー大 S 店 6F
HMT 川«鑷霣電 Mt
太 S
.iltf
IF
用沢 e
イトーヨーカドー松戸 e
〒钃 ラオックス千鼠 ft(PEFUE 3F)
/V千代 ft ラオ•カス千代 ftg
祆■轔 AIMECCS 4F
サトーム G ン(メディア tz ンタ _)
サトーム t! ン(ラジオ r • 一
サトーム G ン寡®
A 秋■颺
サ》^—ム1
CVA 秋
コム本®
r ジオ鱈) '
8 5F
ザ • 3ンピュータ鳕
ViJS ラオックス撕 Wft
池袋 ビックカメラ池»_□寡® 4 F
ビックカメラ;也口店 4F
济谷 上撕電谷店 IF
ビックカメラ汾谷 J® A* 6F
也田谷セマギワ王川店(颺廳賺 5F)
1UIW ラオックス fi” 齊店 2F
小金羚サン葛:霉小肅《6
Hiu 丸麵 《u«iz 川 e(wm
ハ王子ムラウチ霉氰 ?F
躍本
太10
6F)
jbp ハ王子 a (そご3 ;F)
麵•八ンズ的田 ft BIF
jspti 田 a
ソフトクリエイト籲袅6
«*VIVRE ai JF
ダイエー戸霣 a 3F
ic コスモランド awr みの
icu モランドか to
tr キクチデンキ麵
WAVE EYE
IW-
うオック; UP 本达オーテ <オ鼸
WAVE EYE 大
中込亀紙羈 ft
タイエー HWR
mm
■田
BF
八衊
扣V山
H 戴
离松
風 M
松山
¢71州
豔泰
mim
太分
HM
ラつの^や片》1«
H の^カラー明识达
PASIX わ< メディア館
たるま IF AVC
メルバ; a 潷
メルバ_两
メルバ霣; tft
メルバ漭忪募 ft
ホ_エ••寒電獅 tft
マエタ M8V
采電 U テクノ名 S 暦
パソコンシ3ップ3ム〇—卜
ちくさI文«鏖色ターミナル fe
力卜一 _H 霉螬 «91R 4F
A 鼸類19 «—アメ
采電 U テクノ大灞
トップカメラ4に
jsp 大灞 a
Iイデンメディア大礴
宏霉衫テクノ讎蠄
ジャス:] eauft 3F
ジャス:3« 田 ft パ•ノ Tyi/aj7jPi
パソコンシ 3 ップ M ロード IMM
スイテック太10ヤナゲン &A 繾
KawaifftfOA 詹 ft
Kaw3i_ 鰺/)デンワールト•四 nm
Kawai Baxft 6F
AitSMft 間 A 夂
JSP テクノランド
JSP メディアランド
ニノミヤIレランド
ニノックスコア日搴 ma
ニノミヤパソ: j ンランド麵 iiA
ニノミヤパソコンうント断恥謂4ビル供
JSPflbl 三暴幻色
A« 百 MA_fi ハ躧认
JSPWimjft
響霉《三 S 辜 ftC •ソフト
ダイエー三 S 電《鼴パレ:^ス
tIMMZR -雛 K
電鼸 JfiPIC 路 ft
»路コンビ: j ー タソフト: r ノバックス
WUJVIVRE PI
雇礅ファソランド
松本!!讎パーゥ
ダイイチパソ:!ン OTY
Sound Check MOVE
»薦そこう 7F
デンキのタクチ
タイイチ松山ノ r ノコン QTY
ベストマイコン小雇バソ :) ン鼷
ベスト7イ:3ン«®
躑躓エレデ _f
ベスト電鼸 fll_ 錯
蝎馨辜 HA
ベスト7イコン諷蓴パソコン鼸
ベスト霉■鼸 WI パソコン繾
ペスト電■大分パソコン鱈
S_ 麟驪〇纗 ;F
ベスト電■觸讓氏 6F
D390B-1
1)3496^
冬ちや h
作:いゎぃ U ?^ L \
え:岡対祭
(0 ⑴?14•脚
(OIDfl^lSSO
(0177)23-8366
(01 明)54-?77?
(0186)34-3151
(0??)?»-5?90
(哝)》卜4744
(0??)2?4-5591
(0?49)3?-0001
(0?45)21-2011
(〇?46)?3-〇513
(0?36)4?-1?8?
(0?5)?43-5135
(0?5)?33-5791
(0058)33-4970
(0?&8)87*6033
(O?06)6?-OOO?
(0?72)?1-?7?1
(0?73)26-5??1
(0P7E)45-07?I
(0?77)45-?7?1
(贼 )3 卜 0IK
(0898)56-3715
(01«)15-4147
(04S?)i4-SCI
(048;) ^0711
(0439)39-5117
(0473)68-5131
(047?)?卜5318
(0474)85*«61
(03)^56*491 !
K55-4040
*5256-3267
(03):
(03)1 _
(03)3?51-1464
(03)3aS3*5fl^
(03)3258-3711
(03)385M5?3
(03)5356>3111
(03)3350- 1841
(03)3966*0020
(03)3706-1630
(042P)?I-347I
(04?3)B5-38I0
(0425)?/*6811
(04%)4?-6?ll
(0426)?6-4141
(O4c;)?0*a6O3
(0487)23-1313
卿314.4777
«M5)3I4-?I?I
(06)881-1061
(046)901-1901
(045)334-9636
(则?44.54?1
(0466)^1771
(M3)e?-4M7
(046?)??-?;??
(046?)63*9698
(06S?)?4-5OI
(0»?)?M3II
(0?63)3?-6350
(076?)?!-6136
<0784)4 卜9075
(07WP3 •胶1
(07 相)? MJIII
咖限 .4858
(054?)54-533B
(0545)51>80??
(0534)64-841?
(0534)53-1441
((£34) 73- 1691
畑 W5BHWI
(〇5?)?6358?0
(05?);»-3601
(05?)?64-IS34
(股盼 I6P6
啦脱-0181
(0^)971 -0111
(脱)? 6P-IUI
(05?)?4?-6591
<(&3?)5?-1?31
((£64)?3-4960
腿 >35. 1761
(QS6?)G6*O?80
(0584)81-3491
(Q59?)?6-0M1
(0583)54-3366
<(&98)?6-0111
(0WPS-0MI
(Q6) 634-IPII
(08) 634-1511
(06) 63?<?036
(OS) 647-PO30
(05) 643.3?け
(06) 34I-P03I
(06) 374-3311
(0;?6)85-1?1?
(07?9)97*0111
(075)341-3671
(〇734)?0-1441
(0^)391*81/1
(0/8)391- 7911
(C?fl)?l!-?lll
(C 庇)
(0^?)94-6844
' 州 . ぐ H ‘侧 I
(〇064)?5-4^1
(0B?)?43-445I
(0BP/P48-4343
《明; 8)6 卜6け I
麵}? 5.4066
(0866)?3-〇181
(0899)31-6/11
{093)561-6281
<败>?8卜7131
<败畑卜4411
(O950)P0*I333
(038)37?-S4ll
(096)33?-4lfl0
败)办 aoei
(B^)3?-9396
(MB5)?;*4IM
(3066)6?* 7S6B
フラサ—エ讓株式 s 社
〒467名古*市瑙穗区苗代町2番1号
新事業推進室
TAKERU 事務局 (052)824-2493
購読方法:定期購読もしくはソフトベンダー武尊(タケル)でお買い求めいただけます。
★定期購読の場合=定期購読料6ヶ月分6,000円(送料サービス、消費税込)を、
現金書留または郵便振替で下記の宛先へお送リ下さい。
現金書留の場合:〒171東京都豊島区要町丨一19—3いさみビル 4F 満開製作所
郵便振替の場合:東京5—362847満開製作所
參御注文の際は、郵便番号 • 住所 • 氏名 • 電話番号を忘れずに記入して下さい。
•新たに購読を開始される方は、「新規」とご明記下さい。
參製品の性格上返品には応じられませんが、お申し出があれば定期購売を解約し残
金をお返しします。
★武尊でお求めの場合=丨部につき1,200円(消費税込)です。
籲定期購読版と内容が一部異なる場合があります。ご了承下さい。
_お問い合わせ先 TEL (03) 3554— 9282 (月〜金午前1丨時〜午後6時)
(なお、定期購売版のバックナンバーについては定期購読者の方のみご注文を承ります)
パソコンソフト自販襯
^
船本昇竜
(京都府)
プログラマ—を目指す者から見
た電脳倶楽部の魅力といえば',は
やい:フまい•やすい,に尽きま
す。每月掲故されているプロダラ
ムは全部すぐに実行出米るよぅに
なっており尚且つ、掲躲されてい
る殆どのプログラムのソースが公
開されているので自分で新しいプ
ログラムを作る時いろいろと参考
になります。それでいて月々千円
なんてあまりにもお H い得です。
毎月プ〇グラムは非常に高度な物
から初心者にでも理解出米そぅな
物まで数多く褐敉されているので
プログラマ—を目指す人には必見
の"雑誌"であるといえます。
赤えんぴつならゴールが見えるガ
鱗赤又んひつ (JRA 版)
最近甘□の予想ばかりとお嘆きの貴兄に、辛□の予想をデータから導<「赤えんびつ」をそんな貴方にお送りします。
今迄の競馬のコンピュータ用予想プログラムは、オッズを入力して予想するものばかりでした。
この方法はデータ数が少な<入力し易いのですが、オッズは馬券を買つだ人たちの人気投票的なものですし、貴方の個人
的な御意見等も反映出来ず、堅い馬券は時々当たるものの、中穴以上になると7点ぐらい予想をしてもはすれる事が多々
あり、回収率も1〇〇%を割るものばかりでしだ。
今回発売しだ「赤えんびつ」は当だる馬券を予想するのでは無<、予想紙に載つている馬の過去のデータを入力して、ゴ
ールする時のタイムを予想し上位3頭の馬から3点の組み合わせをはじき出します。
当社で行つだ過去9〇回のレースを模擬的に各レース3点で予想しだ結果では35%の的中率を出し、回収率も1 30%
を上回つています。
過去のデータだけを入力するのでは無<、最新の馬の調子や馬場状態等の主観的なデータも1〇〜1〇〇%の数字に置き
換えて予想に反映させだり、それらのデータをディスクにセーブする事が出来ますから、レースの前日にデータを入力し
ておき、レース当日の天候等、直前の情報で各馬のデータを修正して予想を立て直す事も出来ます。
又、コンピュータの苦手な方でも簡単にデータの入力が出来る様にカーソルコント□ールキーと実行キーの5つのキーを
使ろだけで総ての操作が出来ます。
このプログラムは J RA 主催の全国1〇ヶ所(札幌、函館、福島、新潟、中山、東京、中京、京都 J 及神、小倉)の各競馬場以外の
公営競馬場では使えません。
赤えんぴつ US 日000用 2 HD 20,00 Or
便利な超高速通信機能付で、 DB . X よりも使い易く、のディスクもアクセス出来る。
SUPER DEVICE MON I TOR “ T ” XI 6 日000用 2 HD 15,000円
ぶ YSSOOO と超高速通信が出来て MS — DOS のディスクや内部増設 RAM にもアクセス出来る。
SUPER DEVICE MON I TOR “ T ” 2 HD /2 D 13,000円
* MS — DOS はマイクロソフト社の商摞です。
* 商品の価格には消費税は含まれていません。
► お求めは全国の有名マイコンショップでどうぞ0
通信販売をご希望の方は当社へ直接、商品名•機種名•メディア名•住所-
氏名. 電話番号を明記の上、現金書留にてお申し込みください。 (送料無料)
株式会社 BLUE SKY
亍411静岡県三島市加茂 16-4^0559-72-6710
き霞
高価下取り、
買取りいたします、
お問合せ
下さい0
S03(3253)7BB1
〒101東京都千代田区外神田 3-2-3 Q03-3253-761K 代)
今すぐもよりの電話から
仙台 022-264-3704
名古屋 052-452-3271
広島 082-295-6873
札幌 011-611-5104
新 潟 0252-75-4175
大阪 06-311-3931
福岡 092-481-2494
Welcome/
ご来店もどうそ:
X 68000 の情報のすべて/(当店ば X 68000 の認定代理店です。お気軽〖こご相談下 3 TJ )
XX S 8000 待望の新しい仲間登場//
PERSONAL WORKSTATION _
EXPERTS EXPERTffSE
XK6B000
PERSONAL WORKSTATION
■R0H.PR01I SBJ
PROD-PROn HD
’拡張 I / O ボートを 4 スロットを搭載し、汎用
^性と低価格が魅力。
ろん、 SX - W 旧 DOW 搭載。
■ 標 r 準 格 ¥338,000 I
\ / a An nnn
ぶ亨真のモニタは別売です,〕
CZ-—613C 標進風格 ¥448,000
AVC 特価
'
二:
、初脚卿”.
CZ-653C 陽準価格 ¥ 285,000
CZ-663C 標準価格 ¥395,000
〔写具のモニタは別売です。〕
AVC 特価
CZ -8 PC 4
お勧めディスプレイコーナー組合せは 自由、 価格はお気軽にご相談下さい。
但
消
費
税
さ
%
別
途
請
求
さ
せ
て
い
皿
H
48ドット熱転写プリンタ
一。精密な文字、ハード
コピーも可能。
CZ-604D
標準価格 ¥94.800
AVC 特価
• 0.31 mm ドットピッチ
春2モードオートスキヤン
•ステレオスピーカ搭載
♦チルト台同梱
CZ -8 PC 4 ••…¥ 99,800
AVC 特価 ¥64,800
CU-21HD
播準価格¥148,000
AVC 特価
春 0.52 mm ドットピッチ
參21型ディスプレイ
參3モ _ ドオートスキヤン
•ステレオスピーカ搭載
CZ-613D
標準価格¥135,000
AVC 特価
參ドツトビツチ 0.31 mm
• TV チューナー搭載
• ステレオ スピーカー 搭載
參チルト台同梱
CZ-605D
標準価格¥115,000
AVC 特価
修ドットピッチ 0.39 mm
籲 TV チューナー搭載
•ステレオ スピーカー 搭載
* チルト台同梱
籲0.31 mm ドットビッチ
CZ-603D
棵準価格¥84,800春 TV チューナ無し
AVC 特価 *3 モ -K ォ-トスキャン
籲チルト台同梱
CZ-602D
標準価格 ¥99.800
AVC 特価•チルト台同梱
•ドットビッチ 0.39 mm
• TV チューナー搭載
ぎ
ま
分
割
回
数
は
3
回
48
回
ま
で
白
由
に
選
ベ
ま
す。
XIBBOOO
PERSONAL WORKSTATION
EXPERT SHI
一
CZ-604C-TN
.¥348,000
CZ-606D-TN
.¥ 79,800
世界標準 SCSI インタ
ーフェース標準装備。
新年特別 セール
1月中にお買上げのお客
;様にフロッピーテ V スク
20枚と「 V ポール」又は
「ニュージーランドストー
のどちらかをプレ
卜.
外/
AVC 特価
価格はお電話で
XXBBOOO
PERSONAL WORKSTATION
SUPER ms
CZ-612C-BK
. ¥466,000
CZ-603D-BK
.¥84,800
ジョイカード ••¥ 1,400
合計 ¥552,200
新年特別セール
1月中にお買上げのお客
様にフロッピーディスク
20枚と「 V ポール」又は
「ニュージーランドストー
リー」のどちらかをプレ
卜/
起特価
¥352,000
•頭金なし(手軽な電話クレジット)•製品先取り(お支払いは約卜2ヶ月後から)•低金利クレジット( I 回の支払いは2.700円以上で3〜48回。ポー
ナス併用も可)•カレッジクレジット(保証人なし。但し満20歳以上の学生の方)籲18歲未満の方(ご両親が代理購入者としてお申し込み下さい)
•納期(通常の場合、当社に申込窨が到着後 I 週間以内。特に人気のある商品で品薄の場合、少々納期が遅れることがありますので御了承下さい)
春完全保証(すべてメ_カー保証窨付。アフターケア万全)•全国代引(お届けした者に、代金をお支払いいただく方法です。但し手数料1,000円)
AM 10 時から PM 7 時
まで受彳订日曜•祝日ち営業
a 価格は電話で値切って下さい0
ディスプレイ
CZ-604D
CZ-605D
CZ-613D
CU-21HD
プリンタ
周辺機器
ソフト
CZ-8PC4
特価
CZ-8NJ1
¥1,400
CZ-213MS
¥15,500
CZ-8PG1
特価
CZ-8NJ2
¥18,540
CZ-259SS
¥ 5,200
CZ-8PG2
特価
PIO-6BE1A ¥20,000
CZ-219SS
¥23,100
JX220
特価
PIO-6BE2
¥39,000
CZ-245LS
¥35,500
セツト超特価
XI68000
PERSONAL WORKSTATION
pros * PRoniua
CZ-B53C CZ-B53C
CZ-B04D CZ-BQ5D
セツト ¥ 特価 セツト¥特価
¥24,400 X 12 回 ¥25,700 X 12 回
¥13,300 x 2/1 回 ¥13,700 X 24 回
1
セツト超特価
XS68000
PERSONAL WORKSTATION
teihdi
PERSONAL WORKSTATION
[ ± EXPERTS EXPERTEB
^ CZ-604C CZ-BB3C
n -7 -RnRn n^-Ri
CZ-603C
CZ-B04D
セツト ¥ 特価
¥27,500 xl 2 回
¥14,6 QDX 24 回
CZ-B03C
CZ-BQ5D
セツト¥特価
¥28,800 XI 2回
¥15,300 X 24 回
て
税
込
み
で
す
CZ-BOBD CZ-B13D
セット¥特価 セツト¥特価
¥27,000 XI 2回
¥ 14,400 X 24回
CZ-623C
CZ-BOBD
セツト¥特価
¥35,200 X 12 回
¥18,800 X 24 回
¥34,000 XI 2回
¥18,100 X 24®
CZ-B23C
CZ-613D
セツト¥特価
¥40,600 X 120
¥21,600 X 24 回
全品メーカー保証即決クレジット OK
24時間テレホンサービス
0482 - 54-3444
お申し込み
TEL.0482-54-3400
FAX.0482-54-3443
埼玉県川口市西川口 4-6-4
お支払い
下記取引銀行口座
までお振込み下さい。
三菱銀行西川口支店
㈱ デンキヤ ㊃ 〇258081
la
デンキヤ
営業時間 AM 11:00 〜 PM 7:00 水•木曜定休
_ _ _漏
9 HXI 68000 越生•メ
XX68000 SUPER に BASIC HOUSE オリジナル SCSI HD を組み込み、
新たなる SUPER HD の誕生です。
X 68000/40 (40 MHD 内蔵) . ¥348,000
X 68000/100(100 MHD 内蔵) . ¥398,000
X 68000/200(200 MHD 内蔵) . ¥498,000
※ BASIC HOUSE オリジナルなので通信販売のみです0
First Class Technology オリジナル新製品
SB 0000 用 SCSI 仕様
200M 外付用ハードデ a ク
「 FHD -200」 定価 ¥298,000
御問合せは、 PROSTAFF 登坂ま 1
全国どこでも発送可長期クレジット OK 送料全国均一¥1,000宅配便にて即日配送
本社営業部マイコンショップ通販部宇都宮市竹林町5031 TEL 0286 22 9811 FAX 0286 25 397
| /只大田原営業所マイコンショップ 大田原市美原1 13 4 TELO287 23 5352 FAX 0286 23 536
マイコン ショップ い臓 お申し込み • お問い合せは ^ 0286 - 22 - 981 im
2 枚のボードが 1 枚になった
鹏©口遞獅圆
写真は KGB - X 68 PRK -14 です
広大なメモリ空間を実現する最大 4 M バイトの
高速増設メモ U
高速演算を約束してくれる
数値演算プロセッサ
•メモリアクセスノー ウエイトによる高速アクセス
• CZ -6 BE 2、 CZ 6 BE 4、 CZ -6 BP 1 との混在が可能
參複数枚の KGBX 68 PRK の実装が可能
•ジャンパの変更により任意のアドレス空間にメモリの配置が可能
•ジャンパの変更により数値演算プロセッサの1枚目、2枚目、未使
用の選択が可能
_ 1 M 、2 M 、3 M メモリモデルは購入後もメモリ増設が可能
• PRK -10、 11、12、13、14にはデバイスドライバ ( FL 0 AT 3. X ) が付
属
, CZ -600 C 、601 C 、611 C 、652 C 、653 C 、662 C 、663 C で御使用の際にはあらかじめ専用の 1 M メモリ ( CZ -6 BE 1、 A 、 巳等)でメインメモリを 2 M バイト
以上に UT おく必要があります。
製品価格一覧
KGB-X68PRK-00 ¥34,000
(メモリ無し/数値演算プロセッサ無し)
KGB-X68PRK-01 ¥58,000
(1 M メモリ/数値演算プロセッサ無し)
KGB-X68PRK-02 ¥74,000
(2 M メモリ/数値演算プロセッサ無し)
KGB-X68PRK-03 ¥98,000
(3 M メモリ/数値演算プロセッサ無し〉
KGB-X68PRK-04 ¥122,000
(4 M メモリ/数値演算プロセッサ無し)
KGB-X68PRK-10' ¥76,000
(メモり無し/数寅算プロセッサ1寸き)
KGB-X68PRK-11 ¥96,000
(1 M メモリ/数値演算プロセッサ付き)
KGB-X68PRK-12 ¥112,000
(2 M メモリ/数値演算プロセッサ付き)
KGB-X68PRK-13 ¥136,000
(3 M メモリ/数値演算プロセッサ付き)
KGB-X68PRK-14 ¥160,000
(4 M メモリ/数値演箄プロセッサ付き)
購入後の増設費用
メモリ
1 M バイト
¥24,000
2 M バイト
¥51,000
3M バイト
¥76,000
数値演算プロセッサ
MC 68881 RC16
¥38,000
PRK 質問箱
)、購入後のメモリ増設はどうやるのでしょう?
\、ご購入後の prk に対するメモリの増設は半田付け等の技術を要するため原則とじ r 当社
に送り返じ r いただき増設いたします。自分でメモリ増設をする場合は通信販売のみです
が必要な部品の販売も致します。御希望の方はお問い合わせ下さい。
5、数値演算プロセッサに MC 68882を使用することは可能ですか?
\、 MC 68882では動作しないソフトが存在するため使用できません。
) 、「数値演算プロセッサのみ」や「プロセッサ無しメモリ無し」の PRK がほしいのですが?
\、 PRK -10, PRK -00 の型番で商品化じ C おります。
ミ最近 PRK をスロットに挿入したが動作しないと言う御質問を良く受けますが、ほとんどの場合は差し込み不足が
原因です。 X68000 のスロットは大変堅く裏蓋が閉まる状態でも差し込み不十分の場合があります。御注意くだ
さい0
充実の BASIC HOUSE ソフトウ-
ぎ速 12BIT,16CH A/D コンバータボード (KGB-AD12) XI ¥118,000
7オトアイソレーション 16BIT デジタル入出カボード (KGB-PIO) XI ¥ 42,000
ノレーション 16BIT デジタル入出カボード (KGB-X68PIO) X68000 ¥ 68,000
、ンデイプリンタ&インターフェース (HANDYPRINTjack) X68000 ¥ 24,800
§速 12BIT,4CH D/A コンバータボード (KGB-DA4) XI ¥ 98,000
1用 ローコスト A/D&PI0 ボード (KG 巳- X1S) XI ¥ 19,800
S 速 12BIT, 16CH A/D コンバータ (KGB-X68ADC) X68000 ¥128,000
4180CPU ボード Mach 180(KGB-CPX 巳)X68000 ¥ 98,000
] ーコスト MIDI インターフェース (MEL0D 丫巳〇X) X68000 ¥16,800
JASIC 拡張関数パッケージ(巳 6-6301) ¥9,800 C 言語ライブラリ (B6_6305)¥6,800
ド•ィスクキャッシャー (B6-6304) ¥6,800 Toys & Tools (巳6_6307)¥6,800
iASIC 拡張関数パッケージ C 言語ライブラリ付(巳 6-6306) ¥14,800
ァイコンエディタ (B6- 6303) ¥4,800 CP/M68K エミュレータ ( 巳6_6302)¥19,800
おしらせ
皆様に御愛用いただいているディスク
キャッシャーが高速化(従来比平均3倍)
を行ない VerUP いたしました。今回
の Ver UP は八ードディスクキャッシャ
一のみで HD-DISKCACHE Ver
2.0 未満のキャッシャーを御持ちの方が
Ver UP の対象となります。
御希望の方は旧バージョンのデイスクの
ラベルと代金¥1,500(送料、税込み)を
同封して現金書留で御申し込み下さい。
ビデオボードケース (KGB-BVBX)
大好評発売中
SHARP より発売されている CZ-6 巳VI
を外付けにする、ケースです。このケース
の使用によりあなたのX68000のスロット
が開放されます。
Human68k 下のソフトの CRT 出力を強制的に 15k
HZ 出力にする(768><512モ_ド除く)
おまけユーテイリテイ付き
全国どこでも発送可長期クレジット OK 送料全国均一¥1,000宅配便にて即日配送
本社営業部/マイコンショップ/通販部宇都宮市竹林町503—1 TEL0286 22 9811 FAX 0286 25-3970
•口丨大田原営業所/マイコンショップ 大田原市美原 1 — 13— 4 TEL0287- 23 5352 FAX 0286 23 5364
7 ィコンショップお申し込み•お問い合せは qO ク flfi — タク 雌〇/ 1 «(代 )
MBIT
アイビット電子株式会社
分 p >|3
パソコン本体から周辺機器まで品数取 D 揃え
大特画!£ル莫施中ガ
型名
品名
正価
特価
PC-E500BL
ボケコン
28.800
19.800
PC-I600K
ボケコン
69.800
49.800
PC-1360K
ボケコン
36.800
32.800
PC- 1360
ボケコン
29.800
19,800
PC-1262
ボケコン
24.800
19.600
PC-124BD 巳ボケコン
11.000
9.800
PC-12B0
ボケコン
24.800
19.600
CE-T800
ボケコン RS- 规 C コンパ -^-12.800
11.800
CE-203M
ボケコン RAM32K
32,000
7,000
CE-202M
ボケコン RAM16K
35.000
6.000
CE-201M
ボケコン RAM 8K
18,000
3.000
CE-1600M
ボケコン RAM32K
32.000
16.000
CE-1600F
ボケコンフロッピードライブ
39,800
34,800
CE-1600P
ポケコンプリンター
69.800
59.800
CE-1650F
ボケコン □ 旧 K
9,800
8.800
CE-161
ボケコン RAM16K
50.000
3.800
CE-1601M
ボケコン RAM64K
45,000
30,000
CE-1600E
ボケコンディスクインタ-フェイス
19.800
17.800
CE-158
ボケコンレベルコンパター
39.800
31,300
CE-159
ボケコン RAM 8K
35,000
4.200
CE-140T
ボケコン RS-232C コンバタ -
9.800
8.800
CE-140F
ボケコンフロッピディスク
49.800
44,800
CE-123P
ポゲコンブ U ンター
19.800
17,800
CE-120P
ポゲ =] ンプ 1 J ンター
24.800
21.800
CE-124
ポケコンカセットインター
4,500
4.000
Z-VISIONdIus
Z80 シュミレータテパッか • 59,800
51,000
UX-1
ホームコピーファクス
78.000
69, 的 0
PA-9500
八イパー電子手帳
48.000
特価
CZ-300F
XI3 •マイクロフロッピー
79.800
9.000
CZ-31FS
300F 増設フロッピー
59,800
7,000
CZ-82F
CZ-802C 増設フロッピー
59.800
6.000
CZ-501H
XI 増設用八-ドディスクニット
258.000
60,000
CZ-503F
CZ-83D 増設ドライブ 49.800
30.000
CZ-520F
2HD/2DD ミニ 7□ ツビ - ドライブ 118.000
70,000
CZ-6BP1
数値演算ボード
79.800
63,800
CZ-6BU1
:バーサ ル 1 /◦ボード
39.800
33.800
CZ-6BM1
MIDI ボード
29.800
23,800
CZ-6BEIB
1M 増設 RAM ボード
28.000
19,500
CZ-6B 日
1M 増設 RAM ボード
35.000
29.500
CZ-6BE2
2M 増設 RAM ボード
79.800
63.800
CZ - 阳 E4
4M 増設 RAM ボード 138.000110.400
CZ-6BN1
スキヤナーボード
29.800
25.300
CZ-6BF1
闩 S-232C 増設ボード 49.800
42.300
CZ-6SD1
システムラック
44,800
38,000
CZ-6TU
RRG 巳システムチューナー 33.100
26,500
CZ-6BG1
X6B00GP 旧ボード
59.800
50.000
CZ-6BC1
X6800FAX ボード
79,800
B 7,800
CZ-6PV1
ビデオプリンター
198.000158.000
CZ - 阳 VI
ビデオボード
21,000
16.800
CZ-B22C
X1GMODEL30
118.000
39.800
CZ-820C
X1GMODE し 10
69.800
16.800
CZ-8B8C
X1TURBO
CZ-8BGR2 グラフィックボード XI
14.800
3,000
CZ-8BF1
F □インターフェイス
14.800
11,500
CZ- 肥! <2
XI 漢字 ROM
19.800
16.800
CZ-8BM2
232 。マウスボード
19.800
16.800
CZ - 阳 E2
320K 外部メモリー
29.800
25.300
CZ-8BR1
立体映像セット
CZ-8BV2
カラーイメージボート
39,800
32.000
CZ-8BQ1
FD インターフェイス
14,800
8,000
CZ-8TM1 XI ソフト付モデ ^ ユニット 29,800 5,000
型名
品名
正価特価型名
CZ-8TM2 XI ソフト付モデムユニット 49,800 39,800
CZ-8EB3 拡張 j/obox 33,800 28,000
CZ-8LM1 232c ケーブル 7,200 6.000
CZ-8LM2 232C クロスケーブル 7.200 6,000
CZ-8NJ1 ジョイカード 1.7001,360
CZ-BNT1 トラックボール 13,80011,500
CZ-8PK10 24 ドット 13 晰漢字プリンター 99.800 69,000
CZ-8PK7 24 ドット 80 衍漢字ブリンター 122.000 59,000
CZ-8PC4G 丫撕ット熱転写カラ - 漢字カンタ - 99,800 59,800
CZ-BBS1 XI FM 音源ボード 23.80019,800
CZ-8BK4 XI 第 2 水準 ROM - 5,700
CZ-8NJ2 インテリジェントコントロ - ラー 23.80018.500
CZ-8NS1 カラーイメージスキャナー 188,000149,000
AN-S100 アンプ付スピーカー 36.600 29,500
HXD040 アイティム ■ 八 - ドディスク (ITM) 118.000 95.000
HXD140 觀ハ - ドディスク内翮 (ITM) 98.000 75,800
CU-14FD 肟ーディスプレーアナログ 0.31 74,800 49.800
MZ-1D10 『モノクロディスブレー 41,800 25,000
MZ-1D17 15*CRTmz-5500/6500/2124.000 59,800
MZ-1E05 MZ- 2000 FD インターフェイス 24.50018.000
MZ-1E08 カンター I/F 2000/ 謂 /80 日 9.000 8,000
MZ-1E11 MZ- 6500 用 SFDI/F 38,000 25,000
MZ-1E04 MZ- 2000 ブリンター I/F 10.000 6.000
MZ-1E21 MZ- 5500 GPI/F 36.00018,000
MZ-1E18 MZ 200 0Q □ 用インタ - フェイス 9.800 3,000
MZ-1E33 MZ 6500 パラレル I/F 34.800 28.000
MZ-1E45 MZ6500 P32CI/F 50.00015,000
MZ-1E32 MZ 2500 パラレル I/F 30.000 27,000
MZ-1E44 MZ-6500 S-RN I/F 50.00015,000
MZ-1E22 MZ-5500 GPIB I/F 72.800 25,000
MZ-1E29 RS - 规 C インタ - フェイス 300BT 17.800 9.800
MZ-1E01 MZ- 3500 232 C ボード 28,00013.000
MZ-1E14 MZ1500 QD 用インタ - フェイス 9.800 3,000
MZ-1M01 MZ- 2000 棚 16 ビットボード 78.000 8,000
MZ-1M09 MZ • 圆疆 -P 演舞ブロセッサ 82.000 30,000
MZ-1M03 MZ- 5500 数値演算 69,000 38,500
MZ-1M12 MZ-2861 圆演縴プロセッサ 90.000 72,000
MZ-B0P4B 136 桁ドットプリンタ - 48.000
MZ-1P06 ドットプリンター 234.000 45,000
MZ-1P28 ドットプリンター漢字 80 衍 148,000118.400
MZ-1P10A 24 ドットブリンター漢字 80 衍 245.000 79,000
MZ-1P22 熱転写漢字プリンター 59.800 25,000
MZ-1P29 漢字ブリンター 136 桁 168.000134.400
MZ-1P30 136 桁ブリンター 228.000120,000
MZ-1R01 MZ- 2000 /2200G ボード 39.80010.000
MZ-1R10 MZ- 5500 漢字闩〇 M 付 30J00 9.800
MZ-1 闩 09 MZ-5500 V.RAM 35.00015.000
MZ-1R06 MZ-5500 増設 RAM 45,000 8.000
MZ-1R12 MZ-80B/2000/1500/700 RAM 35.000 8,000
MZ-1R11 MZ- 5500 256 KRAM 80.000 35,000
MZ-1R36 MZ-28611M 増設 RAM 45,00015.000
MZ-1R35 MZ-28611M 増設 RAM 55,00019,000
MZ-1R14 MZ- 5500 辞書 ROM 40.000 22.000
MZ-1R16 MZ-5500 1E0KRAM 30,000 8,000
MZ-1 闩 27A MZ- 2500 VRAM 13,00010,000
MZ-1R86A MZ- 2500 増設 RAM 15,00012.800
MZ-1R21 漢字 ROM 38.00013.000
MZ-1R24 MZ-1500 辞書 ROM 22.000 6.000
MZ-1R32 MZ- 6500 RAM 80.000 40.000
MZ-1R31 漢字 ROM 28.000 20,000
MZ-1R28A MZ-E500 辞書 ROM 13.00010,000
品名
正価特価
MZ-1P22 増設 RAM17-22 32,000
MZ-1D17 チルトスタンド 12.000
MZ-2200 デー ^ ーレコーダー 19,800
MZ-5500 データ - レコ - ダ -12,000
MZ- 2500 拡張ボード 9,000
パソコン FAX 278.000
モデムコニツト 21.800
MZ-5500 附属 -
MZ- 6500 MSDOSGWBASIC 60,000
MZ-5500 GW 巳 ASIC 50.000
MZ-6500 日本語ワープロ 49,800
MZ-6500 TODAY 68.000
MZ-6500 書院 RAM 付 69,800
MZ-6500 書院 RAM なし 49.800
MZ-5500 附属 -
MZ-5500 MSDOS 25,000
MZ- 55001 BM 変換 30.000
本体 3 昍 ,000
本体 2 昍 ,000
MZ-1500 QD 通信ソフト -
ブランク QD DISK 450
MZ-1PO カツトシ - トフィーダ - 60.000
MZ-1P10 カツトシード 95.000
MZ- 剛ツトシ - トフィ + 50,000
MZ-1P27 カツトシ - トフィ - ダ - 58.000
MZ-1P06 卜为夕 - フイ-ド
MZ-1P22/17 口-ルホルダー
MZ-6500(50)CP/MB8BASIC-3
MZ-1RP9
MZ-1S13
MZ-1T02
MZ-1T03
MZ-1U09
MZ-1V01
MZ-1X22
MZ-PZ016
MZ-2Z0P8
MZ-2Z023
MZ-2Z031
MZ-2Z029
MZ-2Z064
MZ-2Z0B5
MZ-2Z012
MZ-2Z013
MZ-4Z001
MZ-5521
MZ-5511
MZ-5Z013
MZ-6F03
MZ-6P18
MZ-6P11
MZ-BP29
MZ-BP27
MZ-BP06
MZ-6P20
MZ-BZ88
MZ-6Z25
MZ-B0T20A MZ-80 マシンランゲ -
15,000
3,000
10.000
39.800
• ジ 6.000
MZ-B0TUB MZ-80 バックアップ 20.000
MZ-B0TU MZ-B0 システムブログラム 20,000
MZ-80T40A MZ-80 PASCAL 10.000
MZ-80T70A MZ-80 FIDOS 20.000
MZ-8BGK MZ-80 BGRAM2 39.000
MZ- 阳 104 MZMOGP IB インタ - フェイス 45, 000
MZ-8BG MZ-80BGRAM1 39.000
MZ200/2200GPB ケープル 18,000
X286 しスロット巳 OX
4M RAM ボード
辞書 ROM ボート
2M RAM ボード
拡張グラフィックボード
1M RAM ボード
2M 闩 AM ボード
80 桁漢字プリンタ
136 桁漢字プリンタ
MZ-BBC01
UE-1U01
UE-1R02
UE-1R06
UE-1R01
UE-1R05
UE-1R03
UE-1R04
UE-1P03
UE-1P04
UE-1P05
UE-IP02
UE-1P01
UE-1E04
UE-1E02
UE-1E03
UE-1D03
UE-1D02
10735X
12.000
5.000
8.500
8.500
7.200
85.000
13.000
5.000
35,000
30,000
15.000
20.000
28.000
15.000
5,000
20,000
8.000
55,000
35.000
3.500
400
35,000
35,000
37.500
39.800
7.500
2,700
6,000
15.000
5.000
8.000
8,000
5.000
7,000
10.000
18.000
10,000
8.000
5,000 4,000
300.000 240,000
32.800 85.600
160.000128.000
92.000 55.000
100.000 80.000
180,000144,000
-特価
-特価
136 衍漢字水平プリンタ -
特価
高速 136 桁漢字プリンタ 550.000 440,000
136 桁漢字プリンタ 268,000 214,400
S-RN インターフェイスカ - ド 70.000 56,000
AX286LIC カード I 45.000 36,000
5TD インターフ I イスか • ド 28.000 H 2,400
15 インチカラーディスプレイ 123 . 000 98.400
14 インチカラ - ディスプレイ 158.000126.400
カラープリンター 248.000195,000
BF-68PRO フィルター 19.80016.800
XBBOO キーボード延長ケーブル (1.5m) 2.500 2,000
ディスプレーケーブルアナログ 15P(3m) 5,000 4.000
デイスプレーケーブルアナログ 1 5P(1.5m) 4.300 3.500
ポケコン関係周辺機器サプライ製品及シャープ関係のソフトウェア全種取扱います>
FM TOWNS/FM NOTE / 東芝ダイナブック、周辺機器も取扱っております。
X 咖的全機種取り揃え大特価 1 z ■ル
シャープパソコンフェア ’91 J /]9*20 開催
So
響' 腳"®
MBIT
アイビット電子株式会社
ワープ CK パソコンお買〇上けの方は •
ワープ□•パソコン教室が御利用に/3
れま穿。
PIXEL.A
MacII フルカラー •
イメージクリエータ
〈ビクセカラー735/
定価 ¥128,000
新発売/入荷
SHARP
光磁気テイスクドライブ-
JY -7000
新発売/入荷
i
SHARP X 68000 シリーズ対応八ードディスク
<ITEM>
HXD 040 23 IT 1 S X 68000
定価¥118.〇〇〇ィ特価¥95,000
HXD 042 X 68000 墩投用
定価 ¥ 128.000 :特価 ¥ 102,500
HXD 140 X 68 Q 00 内鼸用
定価 ¥ 98.00 (K 特価 ¥ 79,800
(602.603 は HXD-140 に 内®)
1 你■凡 〆 u •ソ 、 w ___
YYRBOOO 特価表示は、才-プン記念特別価格にてご提供いたします)
し - 特価表示は TEL にてご確認下さい。 -
SHARP
GZ _602 G (本体)
CZ-602C (本体)
CZ-603C (本体)
CZ-603C (本体)
[-プラス MOM 八ードディスク付一!
CZ -603 D ¥315,000
CZ -602 D ¥350,000
CZ -612 D ¥365,000
CZ -613 D ¥375,000
「ブラス(ディスプレイ)組合せ一!
CZ -606 D ¥270,000
CZ -613 DGY ¥310,000
CZ -605 DGY ¥300,000
CZ -611 DGY ¥285,000
プラス MOM 八ードディスク付一!
CZ -603 D ¥365,000
CZ -602 D ¥380,000
CZ -612 D ¥395,000
CZ -613 D ¥400,000
「プラス(ディスプレイ)組合せ一
CZ -602 DBK 特価
CZ -606 D 特価
CZ -611 DGY ¥305,000
CZ -613 D 特価
CZ-604C (本体)
プラス(ディスプレイ)組合せ一
CZ -604 D 特価
CZ -611 DGY ¥310,000
CZ -606 D 特価
CZ -605 D 特価
CZ-623CTISI (本体)
ブラス(ディスプレイ)組合せ一!
CZ -611 DGY ¥445,000
CZ -612 DGY ¥460,000
CZ -613 DTN 特価
CZ -21 HD 特価
CZ-652C (本体)
「ブラス(ディスプレイ)組合せ一!
CZ -602 DBK ¥275,000
CZ -606 D ¥260,000
CZ -612 DGY ¥290,000
CZ -605 D ¥290,000
CZ-653C (本体)
ブラス(ディスプレイ)組合せ 一 ^
CZ -602 DBK 特価
CZ -606 D 特価
CZ -612 DGY ¥290,000
CZ -605 D 特価
幻パソコンゲームソフト ( Xl 、 Xlt 対応) [
トンネルズ&トロールズ .
ロードウォー 2000 .
•xi/xit
“Xlt
... Y 1 i
特価
¥8.330
¥8.330
¥6.630
¥8,330
¥3,230
¥3,230
¥3,230
¥3,230
¥12,580
¥6,630
y ^j}\j y
Alt
ソー サリアン ( ユーティリティー )…
、 i 朴 117、' M 广 1 .
•••八 It
… Xlt
ノ 7 V / ^ INO. 1
、 j 朴窗 |*7 ^、メ 0 .
Alt
ノ リ / 〆 INO.Z
\ y ノ Ma 〇 .
•••Alt
ノ リ A〆 INO.O.
一 RF1 士 M . .
A11
一 .
ラスト•ハルマゲドン .
M. 崖 1 .
* * * A11
… Xlt/Z
... V 14
/K /Nil す。,。
ソ / r v
★ .
八 -t-u,uou
+ ■•发 .
八 11
¥8,330
¥8.330
¥8,330
¥7,480
¥5,525
¥6,800
¥8,330
入肌 /# 研 TX
17 /j -T .
* * * A 11
r ワ入
.
•••Alt
•••Xlt
\BTkyfJ*7mL vWttiU/
了ガ 4f ノ J し .
… Y1 ♦
エフル
u : ix
A 11
上/毎
マスター オブ モンスター ズ
ウイザードリー .
•Xlt
… XI 八
特価
パ 7 フル まあ一じやん 2 ……
•… Xlt
¥6,630
サイオプレイド .
•… XU
¥7,480
ザナドウシナリオ H .
•Xlt
¥4,930
琥珀色の遗言 .
••••Xlt
¥8.330
倉庫番 .
•…) a/t
¥5.780
INKPOT .
.… Xl/t
¥15,300
マシン 首ゲ ーム .
"•• Xl/t
¥3,660
構造化 BASIC のすすめ…
".. Xl/t
¥3.660
マクロアセ W ラー MACRO -80---
"•• Xl/t
¥17.500
信長の野望全国版 .
"" Xl/t
¥8.330
ファンタジー m .
•… Xl/t
¥8,330
マイト•アンド•マヂック2……
•… XI
¥8.330
ビジレス .
•Xlt
¥40.800
デパイス モニター .
•… Xl/t
¥4,900
JET ターボターミナル .
-Xlt
¥8,330
金庫番 .
".. Xl/t
¥9,000
麻雀悟空 .
"•XI
¥5,780
ダ•ビンチ(スーパーグラフィック 2) …
… Xl/XIt ¥5,780
CZ -16 ILFC .
•… Xl/t
¥11,700
CZ -115 し F FORTRAN "
… Xl/t
¥11,700
アイヒ^/卜推奨テイスブレイ1
シャープ
CZ-611DGY
ドットビッチ0.31
チルト台付
特価 ¥79,800
:フ
シャープ
CZ-8B0D
特価 ¥59,800
r—i
シャープ
CZ-B02D-BK
(1S 型アナログ TV/
3モードオートスキヤン) 1
特価 ¥75,000
_
シャープ
21G-SF1
スーバーファミコン
内葳 テレビ
特価 ¥125,000
: ..X, 鱗. •
• C
※シャープ周辺機器(拡張、プリンター他)も常時取り扱っております。
霣士通
FM R50
FM NOTE
岭特価¥190,000
a
SHARP
AX288N-H2
AIMn^ote
特価 ¥35® 000
付け% ' ライブ!^ット
岭特俩 ¥ 358 |000 ■►^*¥'15510
外付け 1 ライブ 妻ット mr ~: m
NEC
PC-98HA
NOTE
551000
TOSHIBA
J- 310 OS S001
DynaBook
定価 ¥198,000
峰 細 M 90 00
キャリングケ
:
富士通 FM TOWNS お霣得セツト
FM TOWNS
モデル2基本セツト
FM TOWNS -2 ¥398,000
FMT - DP 533 V 69,800
FMT - KB 101 ¥ 20,000
B 276 A 010 _¥ 20,000
定価合計 ¥ 507,800
特価 ¥888,000
FM TOWNS
1 S 拡張2セツト
FM TOWNS -1 S ¥338,000
HM -01 T ¥ 32,800
FMT - DP 533 V 69,800
FMT - KB 101 ¥ 20,000
B 276 A 010 V 20,000
定価合計 ¥480,600
特価 ¥208,000
FM TOWNS
1拡張2セツト
FM TOWNS- 1 ¥338,000
HM-01T ¥ 32,800
FMT-DP533 ¥ 69,800
FMT-KB101 V 20,000
B276A010 V 20.000
FMT-FD301 ¥ 28,000
定価合針 ¥508,600
特価¥218,的0
FM TOWNS
2 F 基本セツト
FM TOWNS
2 F 基本セツト
FM TOWNS
20 F 基本セツト
FM T 0 WNS -2 F
¥ 378,000
FM TOWNS 2 F
¥378,000
FM TOWNS 20 F
¥323,000
FMT - KB 101
¥ 20,000
FMT - DP 533
¥
69,800
FMT - DP 533
¥ 69,800
FMT - DP 533
¥ 69,800
FMT - KB 101
¥
20,000
FMT - KB 101
¥ 20,000
B 276 A 010
¥ 20,000
B 276 A 010
¥
20,000
B 276 A 010
¥ 20,000
定価合計
¥487,800
定価合計
¥487,800
定価合計
¥432,800
特価 ¥278,000
特価 ¥278.000
超特価
(TOWNS お買い上げの方〉パソコン教室が御利用できます。初•中•上級者無料にて実施中/
〈全商品新品完全保証付〉 ■シャーブポケコン全 商品販売中。 カタログ、 特価表ご誚 求くださぃ (干 72 )
^0426-45-3002(i)=i88Ji i
FAX.0426-44-6002
•営業時間/10:00~19:00修電話受付/20:00迄可#定休日/水曜日
SHARP SUPER XEX SHOP
アイヒット電子株式会社亍版東京都八王子市北野町 560-5
全通販
gj |P| Sg
北海 m から沖縄まで
★送料はご注文の際にお問い合わせ下さい。
★揭敉の商品は、すべて新品、保証脔付きです。
★褐故の商品は充分明谳してありますが、ご注文の陈
は、在庳の確姐の上、祝金羝留または、銀行抿込で
お中し込み下さい„全商品クレジツトでも扱っております0
★ お申し込みの際は必ず祗話抵号を明!!己して下さい。
★商品,品切れの節はご容敉下さい。
富士銀行八王子支店(普)1752505
♦本誌発売時には上記価格よりさらにお求めやすい価格に変更されている場合があります> •この広告の商品にはすべて送料•消费税は含まれておりません。
当社は X 68000 の販売認定店です)
どんなことでも安心してご相談ください。
★この表以外の組合せ、お支
払い方法もご自由にできます>
★XI シリーズ用、 X 68000 シリ
ーズ用各社ハードディスク/プ
リンタ等の周辺機器を大特価
にて販売じ r おりま to
電話にてお問合せ〈ださい0
X 6 日000シリーズ用周辺機器•ソフトオール超特価//
•渋谷/
A 谷邺便蛘〇
lokx / ivh # i
安田は ItO l
、雩 msy r
i m "
i OtflW 鱷 n 〇聚 ft 文化会雙
r
P 力谷
*〇
C 明治扇り
* 士 ttnO
東 s 東惰 /r
= H 渋谷 駅 I
J ハチ公前 ?
sj
_ )
1 至•比«
ij
こ
型番
品 名
\定価ノ
ソフト名
品 名
\定価/
CZ -6 VT 1
カラーイメージユニット
W 69.800/
MUSIC PRO
MIDI 版
\¥ 28.800/
CZ -8 NS 1
カラーイメージスキャナ
V 188.0 C
i(y
MUSIC PRO -68 K
マウスを使った楽譜ワープロ
V 18.80(/
CZ -6 BE 1 A
IMB 增設 RAM ボード
^ 38.00
SOUND PRO -68 K
サウンドエテ V 夕
^ i 5.8 qd
CZ -6 BE 2
2 MB 增設 RAM ボード
¥\79,800
Sampling PRO -68 K
AD POM サンプリングエディタ
¥\ 17.8^0
CZ -6 BE 4
4 MB 增設 RAM ボード
10
Musicstudio PR ( H 8 K V .1.1
MIDI マルチレコーテ•ィングソフト
¥卜釦〇
CZ -8 NM 3
マウス•トラックポール
¥ Vo
10
OS -9/ X 68000
マルチタスクオペレーティングシステム
¥ W 800
BF -68 PRO
高性能 CRT フィルター
¥ 1^800
PRO -68 K
サイパーノート
¥ 1)|.800
C 2-6 BP 1
数値演算プロセッサ•ボード
¥ 7細00
PRO -68 K
ステ ーシヨナリー
¥
C 2-8 NT 1
トラックポール
¥帅
10
Ccompiler PRO -68 K
ソフト開発セット
¥ >9.如0
CZ -6 BM 1
MIDI ボード
¥/26.80
[〇
Human 68 K Ver 2.0
開発ツールセット
¥/ 9.8^0
CZ -8 NJ 2
アナログスティック
V / 23,80
|Q
PIO -6 BE 1 -A
内蔵 1 MRAM
¥ 25.00¢!
CZ -6 TU
パソコンチューナ
f 33.10
to \
PIO -6 BE 2-2 M
2 MRAM
私 60.000\
SX -68 M
MIDI I/F
/¥ 19.800 \
PIO -6 BE 4-4 M
4 MRAM
/¥ 88.000 \
XE -1 AP
アナ Q グジョイパッド
/¥ 13.800
MUI-B
MIDI I / F + ソフト
/¥ 39.800
▲上記以外ビジネスソフト、最新ゲームソフト豊富に在庫あります0※送料はご注文の際お問合せください。•超特価販売中/
パソコン専門シヨツフ
VDhOUI^h^/mm
•渋谷店 s 03-3486-6541( 代)
亍150:東京都渋谷区渋谷 H 2-7 三和渋谷ヒル
振込銀行:太陽神戸 E 井銀行渋谷宮益坂支店 f No . 5000340
籲横浜店 0045-314-4777( 代)
〒221:横浜市神奈川区«屋町 2-12-8 第1建設ビル
振込銀行:三和銀行横浜駅前支店® No 310852
6 日 000 NEW EXPERTS
• C 2-603 C (本体) . ¥ 338.000
• CZ -613 D (カラーディスプレイテレビ) . ¥135.000
• CZ -8 NJ 2. ¥ 23,800
• お好きなゲームソフト1本 . ¥ 9,800
■定価合計 . ¥506,600
クリエイ H
寺価
均等払い
¥ 9,970x480
¥12.840 x 36 回
¥18,660 x24 回
ポー ナス
なし
なし
なし
均等払い
¥ 7,320 x 48 回
¥10.100 x 36®
¥13,450 x 24®
ボーナス
¥ 42.000 x 8 回
¥ 50,000 x 6 回
¥80.000 x 4®
※本広告に掲載の全商品の価格について消費税
は含まれておりません。
00 UUU
c 5 台限定
"セット
> CZ -602 C-GY (本体) .
> CZ -603 D-GY (カラーディスプレ仆.
. ¥356,000
•¥ 84,800
■定価合計……-
大特価¥279,000
•¥440,800 ►大特価 ¥279,000
均等払い
¥12.850 x 24 回
¥ 8,870 x 36 回
¥ 6,920 x 48 回
ボーナス
なし
なし
なし
日 000 NEW PROE
• CZ -653 C (本体) . ¥285,000
# CZ -60 D (カラーディスプレイ) . ¥ 84,800
拳お好きなゲームソフト1本 . ¥ 7,800
■定価合計 . ¥377,600
クリエイト特価
I 均等払い
¥ 7,680 父 48回
¥ 9,890 x 36回
¥14,370x24®
1 ボーナス
なし
なし
なし
XX68000 supers^
• CZ -623 C-TN (本体.キーポード.マウス) . ¥498,000
參 CZ -613 D-TN (カラ-デ< スプレイ) .¥135.000
• CZ -6 BP 1. ¥ 79,800
■定価合計 . ¥712,800
クリエイト特価
XSBBOOO NEW EXPERT!
ミュージシャンセツト。これも TM ネットワークだよ 〜V
參 CZ -603 C . ¥338,000
參 CZ -605 D . ¥115,000
• MU 1. B ( MIDI ボード&ソフト) . ¥ 39,800
• CM 32 L . ¥ 69,000
_グラナダ . ¥ 8,800
•JOY カード . ¥ 1,800
■定価合計 . ¥572,400►起特価¥458,000
SSG8000 NEW PROS
ゲーマーズセット。遊んで暮らせる SET /
•PROD CZ 653 C . ¥285,000
•0.31 CRT CZ 603 D . ¥ 84,800
•グラナダ . ¥ 8,800
• Y’S . ¥ 8,700
參ポビユラス . ¥ 9,800
•スーパーハングオン . ¥ 8,800
參エージャックス . ¥ 8,800
參サーク . ¥ 8,800
•アールタイプ. . ¥ 7,800
•アナログ JOYSTICXE -1 AP . ¥ 13,800
■定価合計 . ¥445,100►起特価 ¥353.000
新春大感謝セー
営業時間(定休日►渋谷店:日曜•祭日/横浜店:水曜)
AM 10:00~ PM 7:00
X^BBOOO XYBBOOO
ク UHV 卜特典
このキーボードは一味違うガ
ステージ I …合計94個のキースイッチをクリック感抜群の物と交換//
ステージ II …ステージ I +キーボードの101箇所に (§) 入力防止処理を施します。
あな怒 (D B 日000 の丰ー ポ ー ドを
チューンナップします。
ご注意
f LED 付のキー7個
• 巳 REAK . COP 丫キー
1^トド10キー
は構造上
変更出来ません。
その他の入力に必要なキーを変更します。
春 X 68 KP 闩〇 • PRO II には対応していません。
ステージ I …¥19,800
ステージ II …¥29,800
• 当社からの発送代金は全てサービスです。
• 消費税は、いただいておりません。
CYBER Corp.
is サイバー ' 亍 227 横浜市緑区鴨志田町 80 卜 32
お問い合わせは、お気軽に TEL . 045(962)1447 FAX . 045(962)1457
信販売のみ
ご注文は、住所•氏名•年齢 • TEL • 御支払方法
そして、 ステージ I か ステージ II かを選んで、
TEL • FAX • はがき等でお申し込み下さい。
御支払方法1 . 現金書留 • 郵便為替
2. 郵便振替横浜 4-3 1963
3. 銀行振込協和銀行泊江支店
当座009867
入金確認しだい梱包用の箱をお送りしますので、
あなたのキーボードを入れて御返送下さい。
当社に着きしだいすぐに作業にかかり、約一週間で
お手元にお届け致します。
_情報処理
► 総合コースー8力月
►受験コースー6力月 v ^長可能。 )
踞副_齬园 sm
♦学生の方には、特別学割受
講制度があります。
♦企業における集団受講 (3 名
以上)の場合にも割引制度
があります。
窈圈函⑩題荧 51 ®
n 入門コース併設で、初心者の方でもやさしくマスターでぎます。
0試験合格にマトを絞った実戦的オリジナルテキストで、アセンブラ
言語 c as l にも対応。
B プログラミング言語は、実務 • 受験に有利なフォートランかコボル
のどちらかを選択でぎます。
□駿台電子ベテラン講師陣による受験 (13 回)、総合 (15 回)におよぶ個
人別添削指導で、特に合格の決め手になる「プログラミング」を徹
底指璋。
S 企業研修の一環として受講される場合、労働省「生涯能力開発給付
金制度」の適用が受けられます。
灘麵 ®
★ハガキか電話で下記まで。
学校法人駿河台学園 〒101東京都千代田区神田駿河台 2-1-20 お茶の水ユこオンビル 5 F
駿台電子情報専門学校 OhX ①係 FAX 03(3293)3739
A 雜 ESS
XSZ 7 エミュレータ
好評発売中
定価 ¥9,80 C
X 1エミュレータは X 68000 上で X 1シリーズのアプリケーションを実行1
るためのソフトエミュレータです。 XI のアプリケーションを完全にソフト
ウェアのみでエミュレートしているため、 XI 上での実行速度と比較して
平均3〜5倍程度おそくなりますが、 XB 8000 のマシン上に実現した仮想 X
マシンを楽しめます。また、 XI と X 6 即00の相互間でファイルを転送す3
ためのユーテイリテイと専用ケーブルが付属しますので、 XI 上で作り上 I :
たソフトの資産を X 68000 上に移行することも簡単にで杏ます。
エミュレータの機能
♦ XI エミュレータは XI に相当する機能をエミュレート0
この仮想コンピュータには最大4つのドライブが仮想的に接続。
* XI エミュレータからみたドライブは Human 68 k のドライブ上にある
ファイルで仮想的に実現。このファイルは XI 用の 5" 2□ディスクのイ
メージをファイル転送ユーテイリテイでまるごと転送したもの。
* X 1エミユレータで仮想的に実現した X 1は仮想ドライブから起動。
このため仮想ドライブ用ファイルには、 XI を立ち上げるために必要?
HuBASIC や CP / M などのシステムプログラムが必要。
籲 XI エミュレータでは、 XI の持つ VRAM を含むメモリイメージ J
Z 80 CPU を仮想的にソフトウェアで実現。
ファイル転送ユーティリティ
ディスク転送 I
XI ディスク MXB 8000 Human 68 k (5 n 2□ディスクイメージファイル)
春 X 〗エミユレータでは Human 68 k 上のディスクイメージファイルを仮
想ドライブとして使用。
I ファイル転送 I
XI 巳 ASIC : CP / M 和岭 X 68000 Human 昍 k
籲 XI で作ったプログラム S データを X 68000 上で使用。
※付属の専用ケープルを XI と X 68000 に接続してファイルを転送します。
エミュレータ OSA 十/:ぬ:し編
Q . ファイル転送のために別途 RS -232 C ケーブルを買わないといけない
のですか7
A . 専用のケーブルが付属しますのでその必要はありません。
Q . XI 巳 ASIC のプログラムを X 昍000上の X - 巳 ASIC で使えますか7
A . 通常のセーブではコードが違ラので使用で吉ませんが、アスキーセー
ブしたファイルであれば X - 巳 ASIC 上でそのまま口ード可能です。
Q . Turbo 巳 ASIC で作成した住所録などの漢字を含んだデータがある
のですが X 68000上にファイル転送で吉ますか7
A . XlTurb ◦も X 6 B 000 も漢字はシフト J 旧コードなのでファイルの
転送は可能です。ただし、漢字 ROM を必要とするものはサボートし
ていません。
Q . Turbo 用のソフトは動きますか?
A . X 】用のみで Turbo 専用のソフトは動きません。
Q . ゲームは 動きますか7
A . 純粋に BASIC でかかれたものは動きますが、プロテクトがかかった :
のや直接八ードをアクセスするよ5な市販のゲームは動きません。
* タイミング等八ードウエアに依存するようなソフトは、原理上実行できない、もしく
正常に動作しない場合がありますのでご注意ください。
* 一部サボートしていない機能があります。
[3(1 エミュレータ通信販売| 購入希望として住所、氏名、電話番号をお5
らせくださし〗。注文書をお送り致します。
* この商品価格には消費税は含まれておりません。
* CP / M はデジタルリサーチ社の商標です>
文中のソフトウエアは各社の商標です0
ヽ * 製品の仕様、名称は予告なく変更する場合もございますのであらかじめご了承ください。
囍アクセス
〒丨〇丨東京都千代田区神田神保町卜 I
神保町協和ビルフ
S 03( 3233 )0200( 代) FAX .03(3291 )70
\
東京都渋谷区道玄坂 2 丁目28番4号 S (03) 3496-4141
東京都町田市森野1丁目29番16号〇 (0427) 23-1313
It 都 A 王子市謂 II 番1号 Ai 子そごう 7 FS (0426) 26-4141
東京都立川市幸町4 -39 - 10(0425)36-4141
厚木市中町 3-4 - 300)462)25-1548
富山市桜町2- 1一 100(0764)32-3133
金沢市入江2 - 630(0762)91-1130
金沢市寺地2 - 3 S (0762) 47-2524
名古屋市中区大須4 丁目 2-480(052)262-1141
スタータキットのお救)は JSP 各店でどうも
新テクノラント 大阪市浪速区日本俺5丁目6番7号 0(06) 634-1211 藤井寺店
メディアラント大阪市浪速区日本橋5丁目8番26号 S (06) 634-1511 岸和田店
コスモラント大阪市浪速区難波中2丁目1番17号 0(06) 634-3111 さのみや1は AH
U . S . LAND 大阪市浪速区日本橋4丁目9番15号 S (06) 634 -Mil 西宮店
ビジネスランド大阪市北区梅田 1-1-3 大阪駅前第3ヒル B 2 fi (06) 348-1881 姬路店
梅田店大阪市北区小松原町1- 10 S (06) 362-1141 京都寺町店
高槻店高槻市高槻町11番16号 S (0726)85-1212 京都近鉄店
くすは店枚方市楠葉花圍町15番2号 0(0720)56-8181 和歌山店
千里中央店曼中市新千里東町卜 3 SENCHUPAL ? 番即 FO (06) 834-4141 奈良1はん館
摂津富田店高槻市大畑町24 - 100(0726)93-7521 郡山インター店
獲屋川店寝屋川市綍町4 - 200(0720)34-1166 熊本店
藤井寺市岡2丁目丨番33号 S (0729)38-2111
岸和田市 土 生町2451- 30(0724)37-1021
神戸市中央区八幡通 3-2-160(078)231-2111
兵庫県西宮市河原町 5 — l 〗 S (0798)7 M 171
姫络市東延末「目1番住友生命 i 路南ヒル 1 FO (0792)22-1221
京都市下京区寺21通仏光寺下ル恵美須之815490 (075)341-3571
京都市下京区 M 通七条下ル東塩小路町7020 (075) 341-5769
和歌山市元寺町4 丁目4番地 S (0734)28-1441
奈良市三条町478- 】 S ⑴742 )27-1111
大和郡山市横田693- 10(07435)9-2221
熊本市手取本町4 - 120(096) 359-7800
ぬづ☆で
子 U 條箪⑻ た
-パソコン/ワープロ通信ネットワークサービス-
mu m _ part7
9砲釀
(ジャンプコード: PSY 101)
年に3〜4回の大きなオフラインミーティンヴには30名近い老若男
女が集まります。これには家族で参加する人も多く、幼児がまわり
を走りまわつている中での宴となります。又、他の SIG と姉妹 SIG
の提携を結び、合同でオフラインミーティンヴを開き、 SIG 間交流
も盛んに行つています。
<•1
tm
^ 一
•が^
T
T.T
な^
&
is ◄大規模ミート以外にも、機会あるごとに集まっています。
ときには、学会の場でアカデミックなミニミートにも……
_ (左からキヨ□•髭•デンタ•らっば•俊 〈NifTy FPSYr こころとからだボード」〇 P〉 •ミミミ)
人と人、心と心のつなが D を大切に!
サイコロジストとは心理学者のこと。メンノ\一には心理学を専門と
する人が多いけれど、ボードが専門用語一色というワケではありま
せん。なによりも心 ( MIND ) のつながりを大切にする中年 (!?) の
集まりです。そして、まだまだメディアとして市民権を得ていない
パソコン通信を、新しい文明の利器として使いこなしたいと願うメ
ンバーが多いのも特徴。ボードを使って専門書出版の打ち合わせ •
編集作業をすすめ、「まばたきの心理学(北大路書房)」の出版にこぎ
つけました。「书共の健康とコンピュータ」という全国規模のアンケ
一卜調査の連絡にもボードを使用しています。全国各地の仲間と1
つの仕事を行うのに有利なノ\°ソ通。ワーキングボードとしての意義
に注目し、実 KE していこうと努力しています。
r その他楽しいメ:
-がまだまだいつぱぃ/-
★ J & P ならではのバソコン•家電製品
の会員割引もある ONLINE SHOPPING 。
★ J & P だから強い"ノ X ソコン情報をはじめとする
役に立つ DATA BASE 。
★みんなでおしやべ0 オンライントーク ( CHAT 機能)。
★地域別•テーマ別ボードで充実の BBS (電子掲示板)。
★ビジュアルデータもばっちり送受價できる X - MODEM 。
JSP HOT LINE へのご入会はスタータキットで。
お求めは、下記のお店べ。又は現金書留に
て、¥3,000+¥90(消費税3%) = ¥3.090を
事務局までお送り下さい。
すぐにスタータキットをお送りします。
〒556大阪市浪速区日本橋西 1-6-5 上新電機株式会社
JSP HOT LINE 事務局宛 TEL .(06)63 P -2521
お PU わせは
/ aiss 店店店店«店
谷田 H 川む山沢地須
渋町八立本富金寺大
SHARP
US 8000
s
pi
UPEf
、ERSONAL WORKSTATION
R^EXPERT^PRO
ザ•ワークステーション。 80 M バイト (SCSItt 棟)ハードディスク ( HD 7 イグ),
SCSI インスーフェイスを標準装填。
SUPER 本体+キーボード+マウス•トラックボール
CZ -604 C - TN (チタンブラック)標準価^348.000円(税別)
HD タイプ CZ -623 C - TN (チタンブラック)標準価格498,000 PK 税別)
NEW
X 68000 SUPER 新発売
アートの系违。 EXPERT II 本体+キーボード+マウス•トラックボール
CZ -603 C . BK (ブラック) - GY (グレー)標準価格338,000円(税別)/ HD タイプ CZ .613 C . BK (ブラック)標咿価格448,00 0 PK 税別)
ニュース7ンダード。 PROII 本体+キーボード+マウス
CZ -653 C - BK (ブラック) .- GY (グレー)挖準価格285,00 0 IM (税別)/ HD タイブ CZ -663 C - BK (ブラック) - GY ( グレー〉標咿価格395.000円(税別)
•ディスプレイは、別克で1;
• お問い合わせは…シヤープ ㈱ 電子 機器事業本部システム機器営業部〒545大阪市阿倍野区長池町22番22号 15(06)621-1221 (大代表 )•鱷 w -合い
電子 檨器事業本部液晶映像システム事業部 第 2商品企画部〒162 柬 京都新宿区市谷八幡町8番地 0(03)3260-1 161(大代表 ) ft 考丄
14910217902560雑誌02179 -2